Villa had lived dangerously before their late winner as Fabio Silva hit the post for the hosts and Emi Martinez’s brilliant save denied Leander Dendoncker a second-half opener.
It was a competitive and occasionally spiteful derby but – without a crowd – lacked the usual bite until the late drama.
The game was a slow burner and Martinez smothered at Daniel Podence’s feet during a quiet opening at Molineux.
The 18-year-old showed flashes of skill and tried to link play but lacked the impact of Jimenez as he continues to adapt to the top flight.
He was not helped by a lack of service as, against the club who brought him to England, Adama Traore struggled to make an impact.
Despite the lack of atmosphere the friction between the two sides simmered with McGinn, Luiz and Matty Cash booked for Villa and Traore cautioned for the hosts.
Jack Grealish and Dendoncker were separated after a needless spat, although referee Mike Dean was seemingly unwilling to let the game flow.
When it did Pedro Neto darted forward to cut back for Podence but his shot was blocked.
Martinez finally made a serious save six minutes before the break when he was equal to Podence’s low drive after Luiz’s poor clearance.
Two minutes later the goalkeeper blocked from Dendoncker before Podence’s effort deflected wide.
The hosts looked more likely to break the deadlock but Luiz drilled wide 13 minutes after the break.
Villa, with four defeats in their last five, were more reserved than previous away games – having won at Leicester and Arsenal this term – and struggled to build any attacking momentum for much of the game.
As a result, Wolves continued to create the better openings and Martinez gathered Traore’s shot but had to scramble when Neto’s fizzing drive flew a yard wide after 63 minutes.
Ollie Watkins had been quiet but underlined his threat when he cut inside and the underworked Rui Patricio saved smartly before Silva came agonisingly close to a first senior Wolves goal with 21 minutes left.
Podence, again, was key as Villa failed to stop his driving run and Silva latched onto his pass to fire across Martinez, only for the ball to strike the inside of the post.
Soon after Martinez claimed Romain Saiss’ header and the goalkeeper produced a brilliant stop to deny Dendoncker 10 minutes from time.
Neto stood up a cross and Dendoncker arrived from six yards, only to see Martinez’s superb one-handed save keep his first-time volley out.
Villa suffered a blow with five minutes left when Luiz caught Podence to collect his second yellow card but rallied to win it in stoppage time and climb above Wolves into eighth place ahead of the later matches.
Semedo clumsily brought down McGinn and El Ghazi sent Patricio the wrong way from the spot.
There was also still time for Moutinho to be red-carded after he caught Jacob Ramsey to add to Wolves’ woes.
This weekend get a £10 free bet with Betfair, when you bet £10 on a Same Game Multi on the Premier League. Terms: Min £10 Same Game Multi bet on any EPL match this Fri – Sun. Free bet valid for 72 hours, awarded at bet settlement. Excludes cashed out bets. T&Cs apply.