Robbie Keane's superb double punished struggling Wolves in a gripping match.
Darren Bent won and scored a penalty to put Villa ahead, before Michael Kightly equalised with a well-placed shot.
Wolves went ahead after Roger Johnson flicked on a corner and David Edwards headed past Shay Given, before Keane's second-half volley made it 2-2.
Karl Henry was sent off for kicking Marc Albrighton - who was on the ground - in the midriff, with Keane hammering in a stupendous shot for the winner.
It was quite a return to the ground where Keane, who has recently joined Villa on loan from LA Galaxy, started his professional career 15 years ago and the Republic of Ireland striker might have had a hat-trick after shooting narrowly wide following his second goal.
DID YOU KNOW?
- Darren Bent's penalty was the Villa forward's 99th Premier League goal
- Wolves have now gone eight league games without a win
For Wolves it was a case of what if, given the way Christophe Berra clumsily fouled Bent to give away the penalty and Henry's ill-discipline.
After the interval Mick McCarthy's side were never able to replicate a first-half purple patch that brought their two goals, partly through the introduction of Stephen Warnock at left-back, which lessened Kightly's influence, and also when Emmanuel Frimpong was carried off on a stretcher.
Referee Michael Oliver had to play an eight extra minutes after the on-loan Arsenal midfielder needed prolonged treatment when he was caught in the face by Stiliyan Petrov's boot as Frimpong attempted a diving header following a corner.
The game's pulsating tone was set in the opening minute when Gary Gardner should have put Villa ahead, only to head narrowly wide.
Having survived that scare, Wolves provided a huge, helping hand for Villa's first goal.
Dawdling on the ball, Berra was dispossessed by Bent and, in trying to recover, the Wolves defender hacked down the Villa forward, who got up to convert the spot-kick.
Soon after Edwards claimed a penalty as he went down after a challenge from James Collins, while Fletcher turned quickly to test Shay Given with a low shot.
Wolves' revival was emboldened by the power and drive of Frimpong in midfield and the wing play of Kightly and Matt Jarvis.
It was Frimpong and Kightly who combined for Wolves' equaliser, with the on-loan midfielder flicking the ball over his head to escape his markers before quickly passing the ball to the Wolves winger.
Kightly cleverly cut inside Ciaran Clark before guiding a curling shot past a posse of Villa defenders and Given's outstretched hand.
The Villa goalkeeper had better luck in gathering an Edwards shot, though the Wolves midfielder might have done better from a good position.
It mattered not though as a Kightly corner was flicked on by Roger Johnson and Edwards was on hand to head past Given.
Keane had been virtually unseen before his first goal but the elegance of his finish more than made up for that earlier anonymity.
There seemed little danger when Clark cushioned the ball down to Keane but the Republic of Ireland forward swivelled and unleashed a dipping shot that completely surprised Wayne Hennessey.
Keane somehow managed to better that strike with six minutes remaining when, with the minimum of backlift, he struck an unstoppable shot into the roof of the net.
Sorry, we were unable to load match stats, please try again.