Andi Weimann bagged a shock winner as Villa scored twice in three minutes to stun Manchester City.
The Austrian’s strike came just two minutes after Leandro Bacuna brilliant’s free kick levelled in a breathless second half.
Yaya Toure and Edin Dzeko had twice put City ahead in between Karim El Ahmadi’s controversial second-half equaliser with the midfielder scoring from an offside position.
City dominated possession but Villa’s dramatic turnaround stunned the title chasers as Paul Lambert’s men secured superb back-to-back wins.
Nathan Baker retained his place following the 4-0 League Cup defeat to Tottenham while Ciaran Clark and Antonio Luna returned in the defence.
Libor Kozak made his full league debut up front in the absence of the injured Christian Benteke and Gabby Agbonlahor.
Manchester City were without Sergio Aguero but started Edin Dzeko and Alvaro Negredo with ex-Villa ace James Milner also in.
And Milner threatened after three minutes when he fired Aleksandar Kolarov’s cross wide.
It was a subdued opening though with Villa doing little to press the visitors who were content in their patient build-up.
Brad Guzan comfortably claimed Dzeko’s angled effort while Kozak caught Samir Nasri dawdling but was thwarted as he tried to break.
The visitors dominated possession but lacked the final ball to cash in on their play and failed to seriously test Guzan.
Nasri’s shot deflected wide, Pablo Zabaleta’s penalty claims were waved away after he went down under Antonio Luna’s pressure and Negredo couldn’t latch onto Dzeko’s knock down.
Bacuna blazed over from distance in a rare Villa attack before City finally took the lead in first-half stoppage time.
Toure’s 25-yard strike was deflected wide and from Nasri’s corner the midfielder cashed in on slack marking to fire in from six yards.
It was all City deserved but Villa stunned them to hit back five minutes after the restart.
Fabian Delph did well to keep the ball under pressure and when it found Bacuna he slipped in El Ahmadi to drill past Joe Hart.
The midfielder was offside but City made light work of regaining the lead five minutes later when Dzeko glanced in Nasri’s corner.
City were rocked after conceding but rediscovered their stride and Guzan saved smartly from Negredo’s shap volley.
Ron Vlaar fired at Hart as Villa mounted a response and they turned the game on its head within the space of three stunning minutes.
Weimann was chopped down by Nastasic and Bacuna curled a brilliant free kick into the top corner to level on 73 minutes.
And two minutes later Weimann bagged the winner when the City defence missed Guzan’s long punt and the Austrian beat Hart to the ball and prodded in.
City couldn’t respond as Kolarov headed a corner wide at the death.