Blackburn 2-3 Man City
Nicolas Anelka's late winner put Man City top of the Premiership.
Michael Tarnat and Joey Barton had put the visitors in front twice only for Rovers to level with sloppy goals from corners.
Winger Trevor Sinclair headed into his own net after a mix-up with David Seaman before defender Lorenzo Amoruso nodded home his second goal for the club since his move from Rangers.
But just as it looked as though the home side would escape with at least a point, Anelka stabbed the ball through Brad Freidel's legs from a very tight angle.
City went in front after less than four minutes with a stunning, 30-yard free-kick from Tarnat.
Rovers keeper Brad Friedel got his hand to the ball but could not do enough to keep it out.
4 mins: Tarnat scores a spectacular opener
44 mins: Sinclair's own goal levels it
59 mins: Barton puts City back in front
61 mins: Amoruso heads another equaliser for Rovers
86 mins: Anelka scores a fine solo winner
Both sides had their chances to add to the scoreline in the opening half.
Rovers midfielder Steven Reid, making his first start for the club, blasted into the side-netting when a cross looked the better option.
Dwight Yorke then volleyed wide from close range after another Reid shot.
For City, Anelka was a constant threat with his pace and willingness to run at defenders.
In the absence of the injured Robbie Fowler and Paulo Wanchope, Anelka occupied a lone role up front but still got plenty of support from the lively Shaun Wright-Phillips.
City looked set to go in 1-0 up at the break - but they handed Rovers an equaliser on the stroke of half-time.
A Brett Emerton corner looked destined for the safe hands of Seaman until Sinclair's head glanced it into his own net.
Rovers twice levelled from corners
Antoine Sibierski shot agonisingly wide 10 minutes after the restart but City did get back in front when Barton showed great desire to win a 50-50 ball in the area and then fire past Friedel.
Within two minutes, Rovers were level again.
From another Emerton corner, Amoruso headed past Seaman at the near post.
The home side had chances to win the game but were hit by a sucker-punch right at the death.
Anelka outpaced Amoruso before firing past a disbelieving Friedel.
Blackburn: Friedel, Neill, Martin Taylor, Amoruso, Gresko,
Emerton, Flitcroft, Tugay, Reid, Cole, Yorke. Subs: Jansen,
Johansson, Grabbi, Thompson, Kelly.
Man City: Seaman, Jihai, Sommeil, Distin, Tarnat,
Wright-Phillips, Bosvelt, Barton, Sinclair, Sibierski, Anelka.
Subs: Macken, Berkovic, Tiatto, Dunne, Weaver.
Referee: A Wiley (Staffordshire).