Two-goal Edin Dzeko came off the substitutes' bench to earn a dramatic 1-2 victory for 10-man Manchester City in a pulsating Barclays Premier League clash with West Brom at The Hawthorns.
Shane Long broke the deadlock mid-way through the second period with his fifth goal of the campaign but Dzeko equalised for the champions within 60 seconds of entering the action.
Then in injury-time Dzeko struck the winner as the champions completed their comeback after James Milner's first-half red card for a professional foul.
It was no more than City deserved for they dominated proceedings despite their numerical disadvantage with Ben Foster the busier of the two keepers.
Carlos Tevez was a constant threat and Yaya Toure was an impressive figure in midfield while right-back Micah Richards got forward to good effect.
Victory kept City within four points of leaders Chelsea who came from behind to win at Tottenham in the lunch-time kick-off.
It also signalled the end of Albion's 100% home record.
Albion opened promisingly and the recalled Marc-Antoine Fortune flashed a low shot across the face of goal but City quickly assumed control.
Samir Nasri's free-kick was deflected wide and, from the resulting corner by Gareth Barry, a goal-bound header from Micah Richards was blocked by Gabriel Tamas.
Mario Balotelli burst into the Baggies box after exchanging passes with Barry but his eventual shot was comfortably dealt with by Ben Foster.
The former England keeper was more severely tested in tipping over a Richards header from Nasri's corner.
Balotelli became the first player to be yellow carded after a challenge on Youssouf Yacob.
After 23 minutes City were reduced to 10 men when Milner was sent off for a professional foul.
The England player was the last defender when bringing down Long as he raced on to a pass from James Morrison.
Tempers were becoming frayed with Long booked for handball and Gabriel Tamas and Yacob then yellow carded for a fouls on Gael Clichy and Tevez respectively.
Hart needed treatment after saving bravely at the feet of Graham Dorrans who was played in by Gareth McAuley.
Foster clung on to Nasri's volley from a Tevez centre and then denied Balotelli after he had showed great skill in evading three challenges.
But referee Mark Clattenburg spoke to City skipper Vincent Kompany after a challenge by Balotelli on Long which could have produced a second caution.
City began the second half on the offensive and Foster tipped over a 20-yard drive from Tevez.
Tamas blocked another fierce effort from Clichy after being teed up by the impressive Balotelli.
Albion were struggling to make any impression as an attacking force despite having the extra man.
Yaya Toure headed over from close range after Balotelli's miskick from a Richards ball into the danger area had fallen invitingly into his path.
City then appealed in van for a penalty after Fortune was yellow carded for handball but Clattenburg adjudged the offence took place just outside the box.
Balotelli was taken off after 64 minutes and replaced by Sergio Aguero as City continued to press for the breakthrough.
McAuley made a great block on a shot from Aguero but after 67 minutes Long stunned the visitors by putting Albion in front.
Substitute Peter Odemwingie looked like he was attempting a shot but the ball fell into the path of Long who steered it past Joe Hart.
City brought on Dzeko after 79 minutes and within a minute he had brought his side level with a header from a deep Tevez free-kick.
Hart made a superb save with a minute remaining to turn over an overhead kick from West Brom substitute Romelu Lukaku.
It proved decisive as with seconds remaining Dzeko steered home Aguero's perfectly weighted pass.