In a 'you attack, we attack' kind of game, City EDS found themselves a goal down early on before leading at the break.
The visitors got back into the game before a fantastic City move resulted in a fine finish from Frimpong to secure all three points.
It was never going to be an easy afternoon for City, as their opposition looked to take a vital step towards the league title.
The task became even harder just two minutes in, when a well worked Toffees free-kick led to Anthony Gordon being nudged over in the box. The referee deemed the contact to be enough to point to the spot, and Everton's top scorer Bassala Sambou made the most of the penalty kick.
Paul Harsley's side reacted well to the early setback, keeping their discipline and trying to play out from the back.
With just over quarter of an hour played, we won a corner from which skipper Eric Garcia leapt highest to reach, nestling his header into the far corner to equalise for City.
City turned the game around on the stroke of half-time. Adrian Bernabe - who was impressive all game - benefitted from some clever play down the right wing and slotted the ball into the bottom corner.
We extended our lead on the hour mark through a curling effort from Ian Carlo Poveda-Ocampo. The striker sprung clear of the Toffees' defence before calmly finishing past Jaoa Virginia.
Everton halved the deficit just ten minutes later with a quite brilliant goal. A string of first-touch passes led to Brendan Galloway sliding the ball across the face of the City goal for Sambou to tap in his second of the game.
City did their best to maintain their lead, but the title chasing Toffees equalised in the 69th minute as substitute Fraser Hornby finished from a scrappy corner.
With just ten minutes left to play, a beautiful City move was capped off by a powerful finish from Frimpong, to regain our lead and win three points!
How we lined up
Tom Scott started in goal, shielded by a back four of Garcia, Phillipe Sandler, Eliaquim Mangala and Tyreke Wilson.
Iker Pozo, Tommy Doyle and Bernabe played in a midfield three, behind the front line of Frimpong, Poveda-Ocampo and Felix Nmecha.