The best attacking performance of their Champions League campaign so far was also their worst defensive display but in the end they claimed a victory over RB Leipzig which puts them in a strong position for a top-eight finish with two matches remaining.
A deflected effort from substitute Ross Barkley eventually got Villa over the line but even then it required two superb saves from Emi Martinez to preserve the victory which moved Unai Emery’s team up to third in the standings.
Villa had already blown two leads at that point, Lois Openda having pounced on defensive mix-up to cancel out John McGinn’s third minute opener.
Christoph Baumgartner then restored parity for a second time after Jhon Duran had scored his latest sublime goal early in the second half.
The latter also saw another goal ruled out by VAR and Villa had numerous chances and openings of which they did not take advantage.
It almost proved costly as the defensive lapses which have plagued their Premier League campaign appeared on the European stage. Emery’s men had not conceded a goal from open play before this game.
Leipzig have now lost all six of their group stage matches and are as good as out of the competition.
With Leon Bailey out through injury, Emery’s decision to switch system and play Matty Cash as a right wing-back paid instant dividends as he played a huge role in the opener, swinging in a cross with his left foot which Watkins cushioned into the path of McGinn who, having escaped from Nicolas Seiwald, side-footed a finish beyond goalkeeper Peter Gulasci from six yards out.
It was the perfect start and Villa looked in the mood to quickly make it even better, Digne whipping in a cross which just evaded Watkins at the near post.
The visitors were cutting through the home side with ease but could not find the finish, Rogers shooting straight at Gulasci before Youri Tielemans, having been picked out in acres of space, pulled his effort badly wide.
Cash also wasted a good chance when he sliced wide before the hosts, who had barely mounted an attack, were gifted a leveller. Seiwald pumped a hopeful long ball forward and Martinez and Carlos both hesitated, allowing Openda to nip in and roll the ball into an empty net.
There was irony in the identity of the scorer, whose clash with Carlos during a pre-season friendly in the USA had seen the Villa defender sent-off.
Villa continued to create chances and Cash tested Gulasci with a low effort after being sent running through by Rogers’ pass. Watkins then did beat the keeper, only to be foiled by a raised flag, before hitting another effort straight at the shot-stopper just before the break.
The England international walked off holding his thigh and did not re-emerge for the second half.
What last season would have been a big problem for Villa is now anything but thanks to the brilliance of Duran. The Colombia international had already gone close when he drove a shot wide from 12 yards out, before then submitting the latest entry to his personal goal of the season competition.
Martinez started the move with a throw out to Tielemans and several sharp passes later the ball was at the feet of Duran, who from 25 yards out sent a looping finish over Gulasci and into the net. The look on the striker’s face as he stood in front of the Villa supporters was if to say, what else do you expect?
Villa were threatening to run riot but Rogers missed a good chance to extend the advantage when he shot over. The visitors then thought they had a third and Duran a second when he converted Cash’s cross, only for VAR to judge the latter had been the width of a boot offside.
That proved a crucial moment as Leipzig levelled again minutes later. Once again a long ball caused Villa problems, though there could be no questioning the quality of Baumgartner’s cushioned volleyed finish.
The goal did not alter the pattern of the game as Villa continued to push forward. Kamara shot too close to Gulasci before Lucas Digne brought a fine save for the keeper, with a shot which looked destined for the top corner before it was pushed behind.
With 10 minutes remaining Villa almost gifted the hosts another when Torres passed straight to Openda but this time the gift was not accepted, the striker hitting a shot which Martinez comfortably saved.
Barkley was introduced three minutes later and soon had made a decisive impact, his shot hitting Klostermann, who had also just come on and flying past Gulasci.
Leipzig pushed hard for a leveller but Martinez saved brilliantly from Benjamin Henrichs and then Antonio Nusa.
Villa (4-2-3-1): Martinez, Konsa, Carlos, Torres, Digne (Maatsen 83), Kamara, Tielemans (Barkley 83), Cash (Nedeljkovic 71), Rogers, McGinn (Buendia 76), Watkins (Duran HT) Subs not used: Bogarde, Mings, Swinkels, Onana, Philogene, Gauci (gk), Olsen (gk).
Leipzig (3-4-3) Gulasci, Seiwald, Orban, Geertruida, Henrichs, Vermeeren (Klostermann 84), Haidara (Kampl HT), Nusa, Baumgartner, Sesko (Silva 76), Openda Subs not used: Sakar, Jatta, Kampl, Gebel, Vandevoort (gk).