Wolves have kept seven clean sheets from their last eight games, and that is no coincidence.
Patricio was not tested hugely by Villa but made everything he had to do look simple – dealing with crosses, making routine saves and being vocal. 7
Boly was given very few problems by the home side's disappointing front pairing of Davis and Samatta.
As is so often the case, the big man mostly looked at ease on the right of the back three. 7
Played a sumptuous over-the-top ball to Dendoncker before the interval, only for Taylor to intervene.
That was just one of the many sublime passes from the skipper. He barely put a foot wrong. 8
Having been able to avoid a booking, Saiss – on nine yellows for the season – has now passed the cut-off point and does not have to worry about a suspension for 10 cautions.
Put in a more solid display than he did against Bournemouth, too. 7
Got into a lovely position in the first half with a typical gut-busting run but shot into the near side netting when he perhaps should have squared it to Jota.
Defensively sound as Wolves kept another clean sheet. 7
So graceful with the ball, spraying it out to both wings with pinpoint accuracy.
Off the ball, the Portuguese – the deepest of Wolves' midfield three – was often watching Grealish closely, as well. Very good all-round. 8
Has been one of the unsung heroes over the past couple of years, but nobody can deny the impact Dendoncker had on this encounter.
Helped keep Grealish quiet while coming up with a superb strike to win it. Perhaps his most complete performance in gold and black. Star man. 9
Since the restart, the veteran has mainly kept things simple in the middle of the park – picking out the right pass and covering a lot of ground.
And, you guessed it, the Portuguese provided more of the same at Villa Park. 7
Jonny Castro Otto
Played an integral role in the winner, holding the ball up like an accomplished striker – rather than an energetic wing-back – before teeing up Dendoncker.
Did a neat turn past McGinn to start the move, too. He was so busy down the left flank. A proper warrior and quality player. 8
Also involved in the goal as he made himself available out wide before crossing to Otto.
Otherwise, Jimenez did not have any clear-cut chances but tested Nyland with a header early on in the clash and led the line well. 7
Had a glorious opportunity to get back among the goals when Nyland massively messed up a throw, but he rushed it and blazed the ball over.
Was symbolic of him not being at full confidence. Another frustrating afternoon. 6
Adama Traore (for Jota, 60)
Made another positive impact as he was involved in the move for the winner, working space with his quick feet and playing it wide. 7
Pedro Neto (for Jimenez, 85)
Did not see much of the ball in his five minutes or so. N/A
Not used: Ruddy (gk), Kilman, Vinagre, Buur, Jordao, Gibbs-White, Podence