By Rob Bishop from the Etihad Stadium
Villa stormed into the fourth round of the Capital One Cup as extra-time goals from Charles N'Zogbia and Gabby Agbonlahor - his second of the night - clinched a memorable victory over Manchester City.
It was a magnificent achievement by Paul Lambert's team, who were twice behind in normal time but displayed great resilience to haul themselves back into contention before delivering two killer blows in the additional 30 minutes.
The visitors trailed at the interval to a Mario Balotelli goal - his sixth in four games against Villa - but were level with an own-goal by the club's former skipper Gareth Barry on 58 minutes.
And even though City were soon ahead again through Aleksandar Kolarov's free-kick, Agbonlahor brought the scores level again with a well-taken goal 70th minute effort.
Villa started smartly, posing the initial threats, twice going close in the opening 10 minutes.
Andreas Weimann saw a low shot on the turn deflected just wide following Agbonlahor's strong run down the left, and then home keeper Costel Pantilimon was at full stretch to tip away Agbonlahor's curling 20-yarder.
Weimann collected the loose ball and crossed menacingly from the right but Christian Benteke was unable to make contact right in front of goal.
Karim El Ahmadi was too high with a long-range effort as the visitors maintained a high tempo - but Villa paid the price for not converting their early superiority into goals.
On 26 minutes, City capitalised on their first clear-cut chance to take the lead, Balotelli quickly controlling James Milner's low centre eight yards out before drilling a powerful drive past Given.
That setback knocked the visitors out of their stride for a while, although Weimann only just missed out as he chased a long through ball but had the ball snatched off his head by the onrushing Pantilimon.
Given did well to get down at his near post and save Kolarov's well-struck free-kick on the stroke of half-time.
But Villa were in positive mood as the second half unfolded, playing the ball around confidently before grabbing an equaliser.
El Ahmadi instigated the move, displaying great tenacity to win possession before playing a neat pass wide to Weimann.
The young Austrian delivered a menacing cross from the right and although Pantilimon pushed it out, Barry was unable to get out of the way as the ball rebounded off him and into the net.
Six minutes later, though, City were back in front. Given did well to push aside Balotelli's fierce drive on the hour but the keeper was helpless when Kolarov curled a superb 22-yard free-kick into the top corner.
Villa refused to submit, and on 70 minutes they were level again, Agbonlahor accepting a return pass from Benteke before bursting forcefully through the middle to steer a right-foot shot beyond Pantilimon.
Five minutes from the end of normal time, Given made a magnificent save, tipping Balotelli's header over at full stretch, although the keeper was relieved to see a Tevez free-kick clip the top of the bar.
Extra-time saw Mancini's men on the offensive, Given saving from Edin Dzeko before Tevez hooked wide.
But on 96 minutes Villa were ahead for the first time, N'Zogbia calmly stroking home from close range after Agbonlahor's low shot had been turned aside by Pantilimon.
And seven minutes from the end, Agbonlahor claimed his second, working his way across the penalty area and brushing off a couple of challenges before hitting a low shot which hit a defender and looped into the corner of the net.
Man City: Pantilimon; Toure, Lescott (Dzeko, 74), Nastasic; Milner, Suarez (Sinclair, 62) Barry, Razak (Helan, 105), Kolarov; Tevez, Balotelli. Unused subs: Wright, Evans, Scapuzzi, Zabaleta.
Villa: Given; Lowton, Vlaar, Clark, Bennett (Lichaj, 86); El Ahmadi (Herd, 72), Delph; Weimann (Albrighton, 66), N'Zogbia, Agbonalahor; Benteke. Unused subs: Guzan, Bent, Bannan, Lichaj, Baker.