Substitute Edin Dzeko scored two late goals to earn 10-man Manchester City an unlikely win against West Brom.
The Premier League champions were facing an uphill struggle after James Milner's early red card for bringing down Shane Long when through on goal.
And City were staring at the prospect of a first league defeat of the season when Long gave the hosts the lead.
But Dzeko levelled with a header from a free-kick before finishing a blistering counter-attack in stoppage time.
If there was any question of City's championship credentials following three draws in their first seven matches of the season, they were convincingly crushed in the space of 10 second-half minutes at The Hawthorns.
While defeat was harsh on the Baggies, who almost snatched victory themselves when Joe Hart tipped over Romelu Lukaku's overhead kick just seconds before Dzeko's winner, this result had the mark of champions.
Roberto Mancini's men are quickly becoming the Premier League's comeback kings, and the man responsible is 26-year-old Bosnian striker Dzeko.
"Joe Hart was congratulated at the end, and rightly so, because it was his save from Lukaku in stoppage time which allowed City to stay in the game. The champions then went up the other end and won it. What a clinical finish it was too from Dzeko."
Signed for £27m from Wolfsburg in January 2011, Dzeko started City's incredible rally on the final day of last season when he scored in stoppage time to draw City level with Queens Park Rangers, shortly before Sergio Aguero's last-gasp winner clinched a dramatic title for the Blues.
However, before his latest intervention, City looked destined for defeat on what appeared to becoming a frustrating afternoon in the Midlands.
In fact they were lucky not to be reduced to nine men in a stormy first half in which Milner was sent off and Mario Balotelli cautioned.
England international Milner had no complaints about his dismissal for bringing down Long following a mistake in midfield by Vincent Kompany and a glorious throughball by James Morrison.
And Italian striker Balotelli was pushing his luck as, after being booked for a petulant foul on Claudio Yacob, he clattered into another Baggies player and was pulled away from the referee by team-mates as he uttered some choice words in the direction of referee Mark Clattenburg.
When Balotelli did calm himself down, he almost broke the deadlock with a moment of magic which took out two defenders on the left before his shot was well saved by Ben Foster. Carlos Tevez also went close in the first half as City looked to defy the loss of Milner.
The visitors continued to go close after the break, with Tevez having a shot tipped wide before Yaya Toure headed over from six yards out.
However, the spirited Baggies continued to impress when in possession and they took the lead when Peter Odemwingie's inch-perfect pass split the City defence and Long turned Joleon Lescott before calmly slotting past Hart.
It was the reward for some composed football, as the Baggies constantly probed with searching balls through the middle which eventually opened up the Blues.
City needed a reaction, as Baggies fans started to dream of their fifth home victory of the season, and they got it when Dzeko climbed highest to head past Foster in the 80th minute.
West Brom, however, showed resolve of their own and Lukaku had two good chances to seal victory for his side when he headed straight at Hart from six yards out before seeing his acrobatic shot tipped over by the England goalkeeper.
That proved to be decisive as City hit the Baggies on the counter, with Aguero squaring for Dzeko to stroke the ball home from the edge of the area and complete the comeback.
West Brom head coach Steve Clarke:
"I thought we deserved something out of the game. I thought we played well, stood up to Manchester City, but they showed when they went to 10 men that they are champions for a reason.
"Credit to them, their performance with 10 men was excellent and the only feeling I have now is being disappointed to lose the game so late.
"It was maybe a bad decision to go chasing the winner rather than settling for a point.
Manchester City assistant manager David Platt:
"If you look at Edin's career for Manchester City, the goals he has scored, he has got a lot of heavy goals, goals that are very important.
"I remember goals at Blackburn the season before last which more or less gave us Champions League qualification.
"You look back at last season as well and he got some vital goals. To win the league, Aguero's goal will always be the one but remember Edin equalised.
"He has been a threat all season and his form has been very good all season."
West Bromwich Albion
- 01 Foster
- 03 Olsson
- 06 Ridgewell
- 23 McAuley
- 30 Tamas Booked
- 05 Yacob Booked
- 07 Morrison (Gera - 72' )
- 17 Dorrans (Odemwingie - 63' )
- 21 Mulumbu
- 09 Long Booked (Lukaku - 81' )
- 32 Fortune Booked
- 19 Daniels
- 04 Popov
- 18 Jara
- 22 Gera
- 08 Rosenberg
- 20 Lukaku
- 24 Odemwingie
- 01 Hart
- 02 Richards
- 04 Kompany
- 06 Lescott
- 22 Clichy
- 07 Milner Dismissed
- 08 Nasri
- 18 Barry (Dzeko - 79' Booked )
- 42 Y Toure Booked
- 32 Tevez (Kolarov - 82' )
- 45 Balotelli Booked (Aguero - 63' )
- 30 Pantilimon
- 05 Zabaleta
- 13 Kolarov
- 28 K Toure
- 11 Sinclair
- 10 Dzeko
- 16 Aguero
Live Text Commentary
Full Time The referee ends the match.90:00 +3:53
Romelu Lukaku takes a shot. Blocked by Gael Clichy.90:00 +3:04
Edin Dzeko takes a shot. Save by Ben Foster.90:00 +1:30 Booking
Booking Edin Dzeko shown a yellow card.90:00 +1:28
Assist on the goal came from Sergio Aguero.90:00 +1:28 Goal scored
Goal! - Edin Dzeko - West Brom 1 - 2 Man City Edin Dzeko scores a goal from deep inside the penalty area to the bottom right corner of the goal. West Brom 1-2 Man City.90:00 +1:14
Corner taken by Zoltan Gera.90:00 +0:56
Romelu Lukaku takes a shot. Save by Joe Hart.90:00 +0:18
Effort on goal by Edin Dzeko from just inside the area clears the bar.89:39
Romelu Lukaku takes a shot. Save by Joe Hart.89:21
Youssouf Mulumbu restarts play with the free kick.89:21 Booking
Booking Yaya Toure is cautioned by the ref for unsporting behaviour.89:14
Free kick awarded for a foul by Yaya Toure on Peter Odemwingie.88:17
Peter Odemwingie takes a shot from just outside the penalty area clears the crossbar.87:28
Centre by Gael Clichy.86:47
Claudio Yacob has an effort at goal from outside the area missing to the wide right of the target.86:31
Corner from the right by-line taken by Zoltan Gera, clearance made by Yaya Toure.86:03
Marc-Antoine Fortune takes a shot. Gael Clichy gets a block in.85:37
Inswinging corner taken right-footed by Samir Nasri from the right by-line, Jonas Olsson manages to make a clearance.85:26
The ball is sent over by Sergio Aguero, Gareth McAuley manages to make a clearance.
The ball is swung over by Aleksandar Kolarov, Shot from inside the area by Sergio Aguero clears the bar.83:36
The ball is crossed by Samir Nasri, clearance made by Jonas Olsson.81:53 Substitution
Substitution (Man City) makes a substitution, with Aleksandar Kolarov coming on for Carlos Tevez.80:58 Substitution
Substitution Romelu Lukaku joins the action as a substitute, replacing Shane Long.80:35
Centre by Marc-Antoine Fortune, clearance by Joleon Lescott.80:33
Outswinging corner taken right-footed by Zoltan Gera from the right by-line, Close range headed effort by Jonas Olsson clears the crossbar.79:30
The assist for the goal came from Carlos Tevez.79:30 Goal scored
Goal! - Edin Dzeko - West Brom 1 - 1 Man City Edin Dzeko grabs a headed goal from close range. West Brom 1-1 Man City.79:04
Zoltan Gera concedes a free kick for a foul on Gael Clichy. Direct free kick taken by Carlos Tevez.78:03 Substitution
Substitution Edin Dzeko on for Gareth Barry.77:43
Gael Clichy produces a cross, Zoltan Gera gets a block in.77:17
Corner taken by Carlos Tevez, Headed effort from inside the box by Yaya Toure misses to the right of the target.76:20
Corner from the left by-line taken by Zoltan Gera, Joe Hart makes a save.76:04
Peter Odemwingie takes a shot. Blocked by Joleon Lescott.74:56
Corner taken right-footed by Carlos Tevez from the right by-line, Gareth McAuley makes a clearance.74:42
Micah Richards takes a shot. Blocked by Liam Ridgewell.74:06
The assistant referee signals for offside against Youssouf Mulumbu. Free kick taken by Joe Hart.73:43
The ball is delivered by Liam Ridgewell, clearance made by Joleon Lescott.71:59
Inswinging corner taken right-footed by Zoltan Gera, Joleon Lescott manages to make a clearance.71:22 Substitution
Substitution Zoltan Gera is brought on as a substitute for James Morrison.69:02
Yaya Toure is adjudged to have handled the ball. Joe Hart takes the direct free kick.68:05
Free kick awarded for an unfair challenge on Carlos Tevez by Claudio Yacob. Free kick taken by Gareth Barry.66:39
The assist for the goal came from Peter Odemwingie.66:39 Goal scored
Goal! - Shane Long - West Brom 1 - 0 Man City Shane Long grabs a goal from close range to the bottom left corner of the goal. West Brom 1-0 Man City.66:33
Peter Odemwingie takes a shot. Joleon Lescott gets a block in.65:25
Corner from the left by-line taken by Gareth Barry, save by Ben Foster.65:09
Sergio Aguero takes a shot. Blocked by Gareth McAuley.62:05 Substitution
Substitution Sergio Aguero comes on in place of Mario Balotelli.62:05 Substitution
Substitution Graham Dorrans goes off and Peter Odemwingie comes on.62:05
Gael Clichy challenges Marc-Antoine Fortune unfairly and gives away a free kick. Free kick taken by Gabriel Tamas.60:14
Strike on goal comes in from Yaya Toure from the free kick.60:14 Booking
Booking The referee shows Marc-Antoine Fortune a yellow card.60:06
Handball by Marc-Antoine Fortune.59:52
Samir Nasri produces a cross, Jonas Olsson manages to make a clearance.57:56
Claudio Yacob challenges Carlos Tevez unfairly and gives away a free kick. Carlos Tevez produces a cross, Yaya Toure has a headed effort from close range and clears the bar.55:49
Youssouf Mulumbu concedes a free kick for a foul on Mario Balotelli. Direct effort from the free kick comes in from Carlos Tevez.54:30
Gareth McAuley concedes a free kick for a foul on Mario Balotelli. Free kick taken by Samir Nasri.49:56
Unfair challenge on Carlos Tevez by Marc-Antoine Fortune results in a free kick. Samir Nasri restarts play with the free kick.48:11
Mario Balotelli crosses the ball, Gael Clichy takes a shot. Gabriel Tamas gets a block in.47:05
Outswinging corner taken from the left by-line by Gareth Barry, Claudio Yacob fouled by Micah Richards, the ref awards a free kick. Ben Foster restarts play with the free kick.46:45
Carlos Tevez takes a shot. Save by Ben Foster.45:01
The match restarts for the second half.45:00 +4:26 Half time
Half Time The referee blows for half time.45:00 +3:59
Youssouf Mulumbu produces a right-footed shot from outside the box and misses left.45:00 +3:05
Foul by Carlos Tevez on Gabriel Tamas, free kick awarded. Direct free kick taken by Gabriel Tamas.45:00 +1:46
James Morrison produces a right-footed shot from the edge of the box and misses to the right of the target.45:00 +1:11
Graham Dorrans takes the outswinging corner, clearance by Gareth Barry.45:00 +0:15
Micah Richards gives away a free kick for an unfair challenge on Graham Dorrans. Graham Dorrans restarts play with the free kick.43:46
Shot by James Morrison from outside the box goes high over the target.42:42
Foul by Mario Balotelli on Claudio Yacob, free kick awarded. Graham Dorrans takes the direct free kick.41:24
Corner taken right-footed by Samir Nasri from the right by-line, Gareth Barry produces a left-footed shot from the edge of the area and misses to the left of the goal.41:13
Mario Balotelli takes a shot. Blocked by Jonas Olsson.40:06
Mario Balotelli takes a shot. Save by Ben Foster.38:28
Mario Balotelli fouled by Gareth McAuley, the ref awards a free kick. Samir Nasri takes the free kick.37:55
Claudio Yacob has an effort at goal from outside the box which goes wide left of the goal.36:14
Carlos Tevez produces a cross, volleyed right-footed shot by Samir Nasri. Save by Ben Foster.34:44
Mario Balotelli shoots direct from the free kick, blocked by Jonas Olsson.34:44 Booking
Booking Claudio Yacob receives a caution.34:37
Claudio Yacob gives away a free kick for an unfair challenge on Carlos Tevez.31:47
Joleon Lescott gives away a free kick for an unfair challenge on Youssouf Mulumbu. James Morrison delivers the ball from the free kick right-footed from right wing, Joe Hart makes a save.31:10
Free kick taken by Joleon Lescott.31:10 Booking
Booking Gabriel Tamas is given a yellow card.31:03
Gabriel Tamas challenges Gael Clichy unfairly and gives away a free kick.28:07
Gabriel Tamas fouled by Carlos Tevez, the ref awards a free kick. James Morrison takes the free kick.26:41 Booking
Booking Shane Long is booked.26:17
Liam Ridgewell produces a cross, free kick awarded for a foul by Shane Long on Gareth Barry. Direct free kick taken by Joe Hart.22:35
Graham Dorrans produces a strike on goal direct from the free kick, Yaya Toure gets a block in.22:35 Dismissal
Dismissal James Milner is sent off.22:24
Foul by James Milner on Shane Long, free kick awarded.21:31
Carlos Tevez produces a cross, Jonas Olsson manages to make a clearance.20:48
Mario Balotelli crosses the ball, Effort from deep inside the area by Carlos Tevez misses to the left of the goal.18:32
Direct free kick taken by Ben Foster.18:32 Booking
Booking Mario Balotelli receives a caution for unsporting behaviour.18:27
Foul by Mario Balotelli on Claudio Yacob, free kick awarded.16:44
The assistant referee flags for offside against Carlos Tevez. Free kick taken by Ben Foster.14:30
Corner taken by Gareth Barry from the left by-line to the near post, clearance made by Shane Long.13:54
Corner taken right-footed by Samir Nasri from the right by-line, Micah Richards takes a shot. Save by Ben Foster.13:41
The ball is crossed by James Milner, Gareth McAuley makes a clearance.11:45
The ball is sent over by Gael Clichy, clearance by Gareth McAuley.10:21
Samir Nasri delivers the ball, Ben Foster makes a save.6:21
Corner taken by Gareth Barry played to the near post, free kick awarded for an unfair challenge on Gabriel Tamas by Yaya Toure. Ben Foster takes the free kick.5:20
Gabriel Tamas challenges Mario Balotelli unfairly and gives away a free kick. Shot on goal comes in from Samir Nasri from the free kick, blocked by Gareth McAuley.3:35
Gareth Barry challenges Graham Dorrans unfairly and gives away a free kick. Claudio Yacob restarts play with the free kick.3:18
Foul by Mario Balotelli on Gareth McAuley, free kick awarded. Claudio Yacob takes the direct free kick.1:46
Liam Ridgewell fouled by Samir Nasri, the ref awards a free kick. Graham Dorrans restarts play with the free kick.0:52
Unfair challenge on Shane Long by Vincent Kompany results in a free kick. Direct free kick taken by Claudio Yacob.0:17
Marc-Antoine Fortune has an effort at goal from long range that goes wide left.0:00
The match has kicked off.
Live data and text provided by our data suppliers