In a goalless first half that Villa largely dominated, Danny Ings had one good opportunity saved, while Wolves almost took the lead through Adama Traore. The visitors, however, did not come alive until the last 15 minutes of the half.
Early after the restart, Ings headed the hosts in front before a deflected John McGinn made it two, and seemingly secured the three points with Wolves struggling.
But a Romain Saiss stab from close range gave the visitors hope and with a late scramble of a goal from skipper Conor Coady, Wolves achieved what seemed an impossible comeback.
From there the game looked destined for a draw, which Wolves would have certainly taken, but late into stoppage time the unthinkable happened. Neves stepped up for a free-kick from 25 yards and, after a deflection wrongfooted goalkeeper Emi Martinez, it trickled into the far corner to hand Wolves all three points.
Bruno Lage made two changes to his side and made a brave call to drop Raul Jimenez, as he started in a 3-5-2 formation for the first time as Wolves boss.
Jimenez’s omission would have been linked to his international exploits over the last week, as he featured in all three of Mexico’s games. It was the first time he had been benched for a Premier League game, when fit and available, since December 29, 2019, which was a 1-0 loss away to Liverpool.
Leander Dendoncker replaced the striker, who was named among the substitutes, and slotted into a three in midfield to match Villa. That, in itself, was another brave call with youngster Luke Cundle the only midfielder on the bench.
Francisco Trincao missed out as he completed his Covid-19 isolation and Traore took his place. Young goalkeeper Louie Moulden took the spare space on the bench.
Yerson Mosquera, Jonny Castro Otto and Pedro Neto continued to miss out with injury for Wolves.
Dean Smith also made two changes to his side, starting in a 3-5-2 formation.
Axel Tuanzebe and Emi Buendia came into the side, replacing former Wolves man Kortney Hause and Jacob Ramsey, who both dropped to the bench.
But the big talking point for the hosts was that both Martinez and Douglas Luiz started the game, despite both landing back in the UK only 36 hours ahead of kick-off.
Martinez had to travel 7,000 miles after representing Argentina, while Luiz travelled 5,000 miles after playing for Brazil, in order to get back in time for the game - and Smith still chose them from the start.
The first half chance of the game fell to Buendia when the ball broke kindly to him from 25 yards. Joao Moutinho put him under pressure and his eventual shot trickled wide.
At the other end it was Wolves’ turn when a poor Villa free-kick from Tuanzebe was given straight to Dendoncker. He played in Hwang Hee-chan but his curling effort was blocked well by Tyrone Mings.
The early momentum in the game was then disrupted when Neves fell awkwardly in a challenge with Matt Targett, potentially falling on his arm or shoulder. After a fairly long delay, and some medical assistance, the midfielder was able to continue.
Villa began to get hold of the ball after the first 15 minutes and a tame header from Ezri Konsa was straight at Jose Sa, before McGinn had the goalkeeper scrambling with a half-volley that blazed just wide of the post.
Wolves were struggling to keep hold of the ball and when they did not have it, Villa were able to charge forward. Matty Cash turned Fernando Marcal with ease and bombed forward before crossing for Buendia. His volley from 15 yards was well wide, however.
The sloppy play from Wolves was yet to be punished by the 28th minute, despite Villa growing in confidence as the game progressed. A huge save from Sa denied Ings’ low effort, after the striker was slipped in on goal by Buendia.
With their backs against the wall, Wolves almost took the lead through what would have been a goal of the season contender from Traore. Starting on the halfway line, he darted beyond four Villa men in a jinking run and put himself through on goal with Martinez, but his low effort was too close to the goalkeeper.
Following that chance, Wolves began to pass the ball around and take some control for the first time in the game. Some set pieces and crosses came and went, with Saiss and Coady coming closest as they threw themselves at a Neves cross, but fell just short.
With the visitors enjoying more of the ball towards the end of the half, Villa then almost pounced when Ollie Watkins nodded down for Cash, but the right-wing-back fired over from 20 yards when he should have done better.
The story of the first half was a game where both sides had spells of dominance, but neither could finish their chances, as the first half ended goalless.
But only four minutes into the second half and Villa did finish a chance, as Ings handed them the lead. McGinn did well on the right flank to get the better of Saiss and whip in a cross. Ings made a late run and, unmarked, headed home into the bottom corner.
With the hosts, and the home crowd, buoyed by the opening goal, Wolves were sloppy in possession and failed to make anything count going forward. Moutinho sold Neves short with a poor pass, and he then picked up a yellow card as he lunged in to retrieve it.
As the game passed the 60th minute-mark it was still quiet from Wolves, who struggled to break down Villa. The hosts began to sit deeper, but comfortably dealt with any oncoming threat.
But with Wolves chasing the game it was Villa who struck again. A terrible pass from Hwang handed the ball to Watkins, who had a shot blocked. The ball then fell for McGinn who finished from outside the box when his effort took a big deflection off Neves and wrongfooted Sa.
With Wolves desperate for a way back into the game, Jimenez stood motionless on the sidelines warming up and looking over at the bench, as Daniel Podence and Fabio Silva were the first changes, after 74 minutes.
With a goal seemingly impossible, Wolves struck against the run of play when Neves played a delightful pass through to Podence who then put the ball on a plate for Saiss to slide in and finish from a few yards - handing Lage’s side a lifeline.
Wolves continued to push for a goal and remarkably, they found it. Max Kilman first hit the bar with a header before Traore whipped it back in. Dendoncker nodded across goal and Coady, Saiss and Villa man Tuanzebe scrambled at the back post. Eventually it was poked in, with Coady claiming it, to send the travelling fans wild.
Wolves would have been happy with a point and it seemed destined to end that way, before Neves stepped up with a free-kick from 25 yards late into stoppage time. His effort took a big deflection off Targett and wrongfooted Martinez to dribble into the bottom corner.
And that was the last major action of the game as Wolves, somehow, snatched victory from the jaws of defeat.
Wolves: Sa, Kilman, Coady, Saiss, Semedo, Neves, Moutinho (Silva, 74), Dendoncker, Marcal (Podence, 74), Traore, Hwang (Jimenez, 88).
Subs not used: Ruddy, Moulden, Hoever, Ait-Nouri, Boly, Cundle.
Villa: Martinez, Konsa, Tuanzebe, Mings, Cash (Young, 79), Luiz (Nakamba, 67), McGinn, Buendia (Ramsey, 74), Targett, Watkins, Ings.
Subs not used: Steer, Sanson, El Ghazi, Hause, Philogene-Bidace, Archer.