Substitute Edin Dzeko scored two late goals as 10-man Manchester City broke West Brom hearts at The Hawthorns.
Shane Long’s fifth goal of the season on 67 minutes looked set to maintain the Baggies’ 100 per cent league record on home turf this season after James Milner was sent off for City.
But Dzeko made the most of an error by Ben Foster with 10 minutes to play to draw the Premier League champions level.
And he swept home a Sergio Aguero cross in stoppage time to seal a memorable the win for the visitors and inflict Albion boss Steve Clarke’s first Premier League loss at The Hawthorns.
It was a remarkable turnaround for City, who had Milner dismissed on 23 minutes for tripping Shane Long as he ran towards goal.
City were the first side to threaten when Micah Richards met a corner with a powerful header that was tipped over the bar by Baggies keeper Ben Foster.
But Albion were handed a major boost on 23 minutes with the sending off of Milner.
Youssouf Mulumbu won a strong challenge in midfield and found James Morrison, whose through-ball sent Long towards goal.
Milner brought him down and, although Joleon Lescott was making up ground to cover, referee Mark Clattenburg appeared to make the correct decision by sending off the former Villa man.
The game continued to simmer with several yellow cards on each side and Albion held their own with Claudio Yacob firing wide from distance.
City still carried a threat, however, and Foster had to be at his best three minutes before the break when he made an excellent save low down with his legs to deny Mario Balotelli after the Italian had jinked superbly past Gabriel Tamas and Gareth McAuley.
Just before the interval Gareth Barry lifted a shot just over for City.
There was a cagey start to the second half but it was City who twice went close to breaking the deadlock early on through Carlos Tevez.
First the Argentine saw his 20-yard angled shot clawed away superbly by a flying Ben Foster, then he had a shot from the edge of the box blocked bravely by Tamas.
The visitors should have gone ahead just before the hour-mark when Albion failed to deal effectively with a left-wing free-kick which sat up for Yaya Toure.
But the former Barcelona man nodded over with the goal at his mercy.
Marc-Antoine Fortune was fortunate not to hand City a penalty when he was guilty of a blatant handball a fraction outside the area on 60 minutes.
And seven minutes later the Baggies finally made the breakthrough with substitute Odemwingie the unwitting supplier just four minutes after stepping off the bench.
He cut inside and tried a shot from 20 yards which was badly miscued but turned into a defence-splitting pass for Long, who burst into the box and prodded home a first-time shot.
But with 10 minutes remaining City’s second-half pressure paid off as Dzeko profited from a rare error by Foster.
He attempted to punch a Samir Nasri free-kick but failed to make contact and Dzeko appeared in a crowd of players to head home.
Albion had several great chances to restore their lead late on with the best two falling to substitute Romelu Lukaku.
He headed straight at Hart from an Odemwingie cross then saw an overhead kick tipped over by the keeper.
And City cashed in two minutes into stoppage-time as Aguero pounced on Liam Ridgewell’s poor pass and broke on the right, crossing for Dzeko to net the winner.
By Steve MadeleySubscribe to our Newsletter