Villa supporters were jumping through hoops after a second consecutive victory over opponents in the Barclays Premier League danger zone.
Hot on the heels of a 2-1 success at Reading, Paul Lambert's men picked up three more crucial points at the expense of another team in blue and white hoops as Harry Redknapp's QPR were beaten 3-2 in a thriller.
Villa Park was rocking like it hasn't in a long time, particularly in a tension-charged second half when the team's fortunes soared, dipped and then went sky high as Christian Benteke hit the winning goal.
To be fair, Villa had been second best for most of the opening period, falling behind to a Jermaine Jenas goal and relying on keeper Brad Guzan for some important saves.
But the complexion of the game changed dramatically after Gabby Agbonlahor marked his 250th starting appearance with his 70th Villa goal - on the seventh anniversary of his debut.
A magnificent Andi Weimann effort put the home side in front just before the hour mark, and although Andros Townsend equalised, Benteke's winner sent the claret and blue faithful into raptures.
Some of Villa's early play was a sheer delight and the manner in which they maintained possession was a fair indication of the boost they were given by last week's win at the Madejski Stadium.
There were strong appeals for a free-kick when Jose Bosingwa played the ball back to Julio Cesar and the keeper picked it up at the near post, but referee Kevin Friend waved play on.
Yet the first real chances fell to Rangers, Guzan twice denying Chris Samba in the space of a minute.
First he tipped away a header at full stretch following Bosingwa's deep free-kick, and then the American did ever better to push aside a stinging drive from the former Blackburn defender.
And on 23 minutes the visitors were in front.
By then, Nathan Baker had gone off with a head wound and his replacement Joe Bennett's pass to Barry Bannan was intercepted by Jenas.
The former Villa loanee played it to Bobby Zamora, who darted through the middle before hitting a low shot which Guzan did well to keep out - only for the unmarked Jenas to stroke home the rebound.
Rangers were now playing with more confidence.
Townsend made a forceful run before firing just over, Zamora curled a free-kick only marginally too high, and Guzan again saved well from Loic Remy's angled drive.
In first half stoppage time it almost got worse when Bosingwa's 20-yard free-kick hit the post - but Villa bounced straight back to draw level.
Matt Lowton delivered a deep, hanging cross from the right, and despite being surrounded by three opponents, Agbonlahor climbed to send a downward header past Cesar from just inside the six-yard box.
Despite the lift of being level, Villa again found it difficult to find a way through a well-organised outfit at the start of the second half and it was the 56th minute before they had another chance, Benteke controlling the ball on his chest before sending a left-foot volley over the bar.
But that was the prelude to some sustained attacking, and after Weimann had met Bennett's cross with a far-post header that Cesar tipped over, Villa were ahead in the 59th minute.
After Rangers had cleared a corner, Bennett played a short pass to Weimann, and despite being tightly marked the Austrian youngster turned sharply to drill a low left foot shot past Cesar and into the bottom corner from the edge of the penalty area.
Lowton then dragged a low shot beyond the far post after being set up by Benteke, only for the visitors to draw level on 73 minutes.
Rangers had barely threatened since the break but they suddenly put together a fine move which ended with Townsend firing low into the bottom corner.
Ron Vlaar then diverted Remy's shot for a corner but in the 80th minute Villa were back in front.
Sub Charles N'Zogbia played the ball to Weimann, who flicked it up just beyond the near post and rolled a clever pass across the goalmouth.
It was the sort of chance which was screaming out to be converted, and Benteke duly obliged as he calmly slotted home from six yards.
Villa: Guzan; Lowton, Vlaar, Clark, Baker (Bennett 21); Westwood, Bannan; Weimann (Bowery 84), Sylla (N'Zogbia 57), Agbonlahor; Benteke. Unused subs: Given, Holman, Dawkins, Carruthers.
QPR: Cesar; Bosingwa, Samba, Hill, Fabio (Taraabt 66); Remy, Park (Mackie 87), M'Bia, Jenas, Townsend; Zamora (Hoilett HT). Unused subs: Murphy, Wright-Phillips, Granero, Onuoha.