Romelu Lukaku opened the scoring, before Alvaro Negredo and the Argentine turned the tie on its head, with Tim Howard fumbling the latter's penalty to put the result beyond doubt.
Manuel Pellegrini's men headed into the game on the back of consecutive defeats against Aston Villa and Bayern Munich.
Everton was looking for its fourth win in five matches and made the perfect start when on-loan striker Romelu Lukaku scored the opener.
City quickly turned things around, though, Alvaro Negredo and Sergio Aguero overturning the deficit before halftime.
A superb performance was capped off 15 minutes from time when the unfortunate Tim Howard deflected an Aguero penalty into his own net as Everton lost in the league for the first time this season.
City made five changes to the side beaten 3-1 by Bayern on Wednesday, Pablo Zabaleta and Aleksandar Kolarov replacing Micah Richards and Gael Clichy in defense, while James Milner, David Silva and Negredo came in for Jesus Navas, Samir Nasri and Edin Dzeko.
Everton was without Gareth Barry, the on-loan midfielder ineligible to play against his parent club, with Steven Naismith taking his place in the starting XI.
The home side did most of the early pressing as Yaya Toure forced a good save from Howard with a curling effort, before Kolarov fired narrowly wide from a free kick.
However, Everton took the lead somewhat against the run of play after 16 minutes when Lukakau netted his third goal in two games, the Belgian collecting a long ball from Phil Jagielka before turning inside Joleon Lescott and slotting it under Joe Hart.
The England goalkeeper has come under fire after a series of mistakes in recent matches and may feel that he could have done better with the shot, which crept under his outstretched arm.
Everton's advantage lasted just over a minute, though, City leveling as Negredo found the net from close range following an incisive pass from Toure.
City should have seized the initiative midway through the first half, Aguero somehow shooting wide of the target at the end of a well-worked free kick between Toure and Silva.
Pellegrini's charges suffered a blow 12 minutes before the break when Vincent Kompany - who made his return to fitness last month - was forced off through injury.
City continued to push forward as the club looked to complete the turnaround. Aguero spurned a number of chances in the closing stages of the opening period. Still, he was not to be denied and 44 minutes in he put City in front with a precise right-footed finish at the near post after latching on to a pass from Silva.
Pellegrini was forced into another change in the early stages of the second half, Kolarov replaced by Clichy after sustaining a cut in a collision with teammate Matija Nastasic.
City dictated the play in the second half without creating any clear-cut chances, but was handed an opportunity to finish the game off when Seamus Coleman brought down Zabaleta inside the area.
It was one that Aguero did not pass up as his penalty eventually found the bottom corner after deflecting off both the post and goalkeeper Howard to all but end the game as a contest.
James McCarthy went close with a header from point-blank range but Everton otherwise struggled to mount any significant response as the Premier League's last unbeaten run came to an end.