Mario Balotelli’s second goal of the afternoon and a powerful Aleksandar Kolarov strike inside the last five minutes at the Etihad Stadium earned City a draw but it was not enough to take them back top.
Sunderland had powered into a 3-1 lead with two goals from Sebastian Larsson and a fine header from Nicklas Bendtner.
From that position, City would ordinarily have been pleased with a draw – which preserved their unbeaten home record – but arch-rivals Manchester United now have a huge advantage and could go five points clear on Monday.
It was a fractious affair in which Balotelli appeared to argue with team-mate Carlos Tevez.
Problems appeared to be mounting for City before kick-off when, a day after manager Roberto Mancini mysteriously refused to discuss top scorer Sergio Aguero’s ankle problem, Samir Nasri revealed he had been ruled out by injury.
City at least had the reassurance of captain Vincent Kompany back in their defence after four games out with a calf injury but the hosts lacked bite and were pushed back from the outset.
Micah Richards found himself in the firing line early on as he blocked a powerful shot from James McClean and then required treatment after Stephane Sessegnon beat him to create another opportunity.
Sessegnon failed to make the most of that chance, opting not to pass to McClean to cut inside and Kolo Toure cleared.
The first signs of City unrest were perhaps seen as Balotelli and Yaya Toure were involved in animated discussions as play was stopped for Richards’ injury.
Sunderland had another good chance to go ahead as Sessegnon was twice involved in a sweeping move but Craig Gardner’s shot into the side netting.
City responded as Edin Dzeko tested Simon Mignolet and Kompany scuffed a shot wide from the resulting corner but Sunderland remained just as likely scorers.
McClean turned on the edge of the area to shoot narrowly wide and Bendtner then had an effort blocked before the visitors deservedly went ahead on the half hour.
Larsson did the damage with a superb finish from the edge of the area, beating Joe Hart with a low shot into the bottom corner.
City tried to reply quickly and Yaya Toure won a free-kick on the edge of the area but Mignolet saved from Kolarov.
City got back into the game from the penalty spot after Phil Dowd controversially ruled that Gardner had upended Dzeko.
Sunderland were furious at the decision but Balotelli kept his cool to level.
An argument broke out between Dzeko and Phil Bardsley when play was stopped following a clash of heads between Richards and Colback.
Balotelli proved an unlikely peacemaker and play eventually restarted, but City may have wished it had not as Sunderland reclaimed the lead in first-half injury time.
Bendtner made no mistake as he planted a firm header past Hart from a Sessegnon cross.
City needed to respond but it was Sunderland who continued to force the pace in the early stages of the second half.
Yaya Toure, weary after a heavy tackle, was beaten to the ball inside his own half as Sessegnon launched the attack which led to Sunderland’s third.
Bendtner raced into space down the right and played a low ball into the box for Larsson, who timed his run perfectly to slide in at the far post.
Mancini’s response was to send on Tevez for Silva and the hosts spurned a chance moments later as Kolo Toure headed over from a corner.
City won a free-kick after Kolarov went down on the edge of the area and frustrations boiled over as the hosts could not decide who should take it.
Balotelli clearly wanted to be involved and reacted unhappily when Tevez lined up behind the ball. Kompany had to push the Italian away and in the end it was Kolarov who took it, curling a shot wide.
Tevez had his first chance as City broke from deep but hit the side netting from the edge of the area.
Bendtner missed a fine chance to make it 4-1 when he fired over from the edge of the box and City finally stirred into life.
Balotelli reduced the arrears with a fine goal, all of his own making, five minutes from time as he came in from the left and ran across the edge of the box to beat Mignolet from distance.
The hosts threw everything into attack and were rewarded again as substitute David Pizarro rolled the ball wide for Kolarov to smash home.
Despite some frantic late scenes, however, City could not claim a winner.