The Blues had gone ahead through Gary Cahill's deflected strike but a Sergio Aguero penalty was followed up by an 85th-minute strike from the French midfielder to seal the points
Mario Balotelli had the best chance of a goalless first half, firing wide after Frank Lampard let him in with a near-disastrously sloppy pass.
Gary Cahill capitalised on a poor clearance from Gareth Barry on the hour to fire a deflected shot home on the hour, his second goal in two games putting the Blues in front, but Michael Essien's handball allowed the hosts a way back in, giving away the spot-kick for Aguero to equalise.
Carlos Tevez then marked his first appearance in six months with the key through-ball to set up Nasri's 85th-minute finish.
City’s highest-profile selection was on the bench, as Tevez appeared on the teamsheet for the first time since September. In the first XI, however, Micah Richards was drafted in at centre-back to partner Kolo Toure with captain Vincent Kompany injured.
Interim Chelsea boss Roberto Di Matteo rewarded Fernando Torres’ double against Leicester City in the FA Cup with a starting berth at the Etihad Stadium. John Terry did not travel for the Blues as he continues to recover from injury, with Cahill and David Luiz together at the back.
City started at a high tempo and had sight of goal when Pablo Zabaleta won a header in the area and passed to David Silva, but, with little time or space to set himself, the Spaniard could only blast over.
Chelsea responded quickly, Torres embarking on a keen run past two home players and giving it to Juan Mata, but his compatriot was unable to shoot on target.
Samir Nasri then darted down the other end for the hosts, getting on the right side of Branislav Ivanovic to receive an excellent long through-pass from Yaya Toure and taking advantage of Petr Cech being a little out of his goal to shoot. The Frenchman was unlucky to see his effort come back off the bar.
Luiz was called into action soon after when Yaya Toure slipped it to Sergio Aguero at the end of a powerful drive through the middle, the Brazilian diverting the striker’s low shot out.
Ivanovic was forced off the pitch in the 20th minute having apparently aggravated a pre-existing muscle problem, Jose Bosingwa replacing the Serbian at right-back.
Nearing the halfway point of the first period, Torres’ cross-come-shot from the right drew an interception from Joe Hart, but the hosts remained on top, the impressive Nasri going close again when space opened for him to shoot from range. His powerful strike flew not far over.
Balotelli should have profited just before the half-hour after Lampard let him in by offering a catastrophic pass straight to his opponent, but the Italian, advancing in space, aimed his shot uncharacteristically wide.
A key interception by Richards then snuffed out a Torres chance, the centre-back excelling to reach Raul Meireles’ cross before the Spaniard could latch onto it.
Both sides were lacking in quality up front as the first half wound down, with Aguero’s wayward bicycle kick in the area the highlight of the last 10 minutes before the break came with the scoresheet blank.
Roberto Mancini, visibly frustrated with his side in the first half, introduced Gareth Barry at the interval for Balotelli and City came out on the front foot once more. Nasri, though, blew a good chance by shooting well over from Yaya Toure’s pass.
The Frenchman then found the bar for a second time soon after with a mishit cross that forced Cech into action, the Blues keeper pushing the ball against the woodwork before it came to Silva, whose shot was deflected out.
The resulting corner found Aguero at the far post, the Argentine volleying over from a tough angle.
It was Chelsea who broke through, though. From a corner on the hour, Barry inadvertently diverted the ball into the path of Cahill with his shoulder, and the centre-back’s shot deflected off Yaya Toure past Hart to give the Blues the lead.
The setback saw Mancini immediately summon Tevez from the bench, the striker replacing Nigel de Jong in an attacking change.
The match, however, entered a quieter period for the subsequent 10 minutes, waking up slightly when Mata advanced on his own down the left for Chelsea, his endeavour earning a corner as his shot was palmed out by Hart.
City, though, found themselves back in it in the 77th minute when substitute Essien was penalised for clearly handballing Zabaleta’s shot in the area. The Ghanaian’s error allowed Aguero to step up and thump his penalty home to level the scores.
Reinvigorated, the home side poured forward, Nasri forcing Cech into action again with a low effort that was saved well.
They got their reward five minutes from time when the headline-maker Tevez slipped Nasri into the area with a delightful through-ball which the Frenchman dispatched coolly.
Chelsea were unable to summon an answer in four minutes of added time - indeed, Aguero came close to a second with a long, determined run before shooting wide - and the final whistle soon blew, leaving City still in the thick of the title race and celebrating a record 20th consecutive home win in the Premier League.