Sunderland threatened a major shock when Fabio Borini (10) gave them a half-time lead with a superb solo effort, but City turned the game in their favour with a stunning two-goal blast from Yaya Toure (55) and Samir Nasri (56).
Substitute Jesus Navas made the game safe in the final minute when he latched onto Toure’s pass to fire past Vito Mannone after a lightning break from City.
Toure cancelled out Borini’s opener with a sublime effort from 30 yards out and less than a minute later Nasri broke Sunderland hearts with another brilliant finish before Navas added a third late on to keep City’s domestic treble hopes on course.
City created the first noteworthy chance of the game on nine minutes when the returning Sergio Aguero fired in a shot from 25 yards which Vito Mannone did well to push away.
A minute later Sunderland stunned City by breaking the deadlock with a superb finish from on-loan striker Borini.
Lee Cattermole robbed the ball off Fernandinho on the edge of the Sunderland penalty area and Adam Johnson sent a ball over the top for Borini, who held off the attentions of Vincent Kompany before exquisitely drilling his shot with the outside of his foot past Costel Pantilimon to send the Sunderland fans into raptures.
Aguero created a chance for Nasri on 27 minutes when he broke down the right and picked out the Frenchman inside the box, but on the stretch he could not get enough purchase on his shot to trouble Mannone.
Two minutes later Johnson almost got in goal when he caught the City defence sleeping from a throw-in and his cross was just about scrambled away by Fernandinho.
Borini had a great chance to double Sunderland’s lead seven minutes before the break when the Italian, in an offside position, raced clear on goal, but just when he was about to shoot Kompany made a vital last-gasp tackle to deny the striker.
Silva had the first chance after the break on 50 minutes when he saw his shot from the edge of the box comfortably saved by Mannone.
Sunderland then switched play straight up the other end and Ki Sung-yeung fired in an ambitious dipping 30-yard shot which forced Pantilimon to tip over the crossbar.
City drew themselves level on 55 minutes with a goal out of nothing as Toure scored one of the goals of the season with a stunning shot.
There looked very little danger to Sunderland when Pablo Zabaleta played a square ball to Toure 30 yards from goal, but the midfielder unleashed an unstoppable curling shot into the top corner past Mannone.
Less than a minute later City turned the game on its head with another brilliant goal through Nasri.
Aleksandar Kolarov’s cross from the left was cleared to the edge of the box and it fell perfectly to the arriving Nasri, who showed great technique to smash his shot with the outside of his right foot past a startled Mannone.
City continued to push forward in search of a third goal and they had claims for a penalty waved away just before the hour mark when Kolarov went down in the box under a challenge from Phil Bardsley.
Sunderland refused to lie down and substitute Steven Fletcher had a sight of goal on 72 minutes when Jack Colback teed him inside the box, but his half volley was straight at Pantilimon.
City almost grabbed a third goal nine minutes from time when Kompany got on the end of a corner from Nasri and was unlucky to see his volley fall the wrong side of the near post.
Fletcher wasted a great opening a minute from time when the ball dropped to him inside the box, but his first touch let him down the chance went begging.
Sunderland were made to pay for that miss as City caught them on the break and Toure passed for Navas to score and seal the victory.