Anwar El Ghazi converted from the penalty spot in injury-time after Nelson Semedo brought down John McGinn.
Both sides ended the game with 10-men, with Joao Moutinho and Douglas Luiz were shown second yellow cards.
The victory lifts Dean Smith's side up to eighth in the Premier League, whilst Wolves drop to 11th.
Story of the match
The home side made a positive start, setting up in a 4-2-3-1 formation with Daniel Podence playing as a number 10.
Villa had the game's first talking point after 15 minutes when Luiz was brought down in the penalty area, but a free-kick was given as Jack Grealish was on the receiving end of a challenge before.
Wolves' first opportunity of the game landed at the feet of Podence following good work from Pedro Neto. The teenager's pullback for Podence was teed-up well, but the Portuguese forward scuffs his attempt.
Neto, who provided problem after problem for Matty Cash, provided another chance for his side, but Dendoncker's strike was brilliantly denied by Emiliano Martinez.
The first half ended with four yellow cards, three for Villa, in a 45 minute period lacking the drama, but not the rivalry feeling about it.
In the second half, Villa started the better. Luiz struck a low strike past the post before the hour mark after Grealish's patience play resulted in the midfielder forcing Rui Patricio to dive.
After dispossessing Matt Targett on the half-way line, Adama Traore's surging run ended in a weak attempt into the hands of Martinez, despite having options.
Next to try his luck for the Wanderers was Neto. The tricky winger worked his way into the middle before unleashing a powerful strike, but it sailed just wide of the goal.
As the game began to stretch, both sides started trying their luck with each other's goalkeepers being kept busy. Ollie Watkins was denied by Patricio at his front past before Silva was denied by the post.
Just as Villa showed glimpses of confidence, Wolves began to grow in the game. Romain Saiss and Nelson Semedo both being denied by Martinez moments between each other.
Podence's heavy touch ended up handing Silva the chance to turn and strike, beating Martinez, but seeing his effort rebound back off the post.
Arguably Martinez's best save of the afternoon came in the final 12 minutes when Neto's cross was volleyed towards goal by Dendoncker, but the Argentine managed to palm it away.
Villa won the game late on when Semedo fouled McGinn in the area, providing El Ghazi with his first league goal of the season to earn the bragging rights for the away side.
Villa a different side from last season
The victory is Villa's fourth away win of the season, something they did not do at all last season. Showing the difference in class.
Grealish, Watkins and Bertrand Traore all impressed for Smith's side against Wolves back four, but the energy and fight to strike the winner despite being down to 10-men will please everyone at the club.
They have now won at Wolves, Arsenal and Leicester City. Who knows what heights they can reach this season.
Wolves seriously miss Jimenez
It has only been two games since Raul Jimenez's serious injury at Arsenal and they remain without a goal since.
Silva did strike the post and Dendoncker's advanced runs do provide a different outlet to what the club is usually used to, but the absence of the Mexican striker is telling.
If they are to construct a European bid, they will need to work out a way to spread the goals out within the side.