Leandro Bacuna and Andreas Weimann struck in the space of two second-half minutes as Aston Villa claimed a stunning 3-2 win over Manchester City in the Barclays Premier League.
The hosts had twice trailed after goals from Yaya Toure and Edin Dzeko either side of a Karim El Ahamdi equaliser in a compelling encounter at Villa Park.
However, Bacuna levelled with a fine free-kick after 73 minutes and Weimann added another as Villa, after being outplayed in the first half, turned the game around.
Such an outcome had seemed unlikely at half-time after City had overrun Villa without really hitting top gear.
Even though they did not play with the intensity of last weekend's compelling win over Manchester United, City were troubled so little by Paul Lambert's men.
The second half proved a different story and City, who had been close to full strength, aside from missing striker Sergio Aguero, suffered another away day nightmare after losing at Cardiff last month.
It was also not the ideal preparation for Wednesday's glamour tie against Bayern Munich in the Champions League.
City dominated the first half and created a succession of chances against a side missing the spark of striker Christian Benteke, who missed the game through injury.
The first chance came in the opening moments as Aleksandar Kolarov burst down the left but James Milner, against his former club, shot well wide.
Dzeko shot at Brad Guzan after being put in by Samir Nasri, who then had a good effort of his own deflected wide from 18 yards after he was released by Toure.