David Dunn's penalty kick a minute from time saw ten-man Rovers claim all three points in a pulsating Ewood encounter.
It had started badly for Rovers when Gabriel Agbonlahor fired the visitors in front after just three minutes, Villa scoring with their very first attack.
But Rovers levelled just past the midway point, Chris Samba poking home from Franco Di Santo's knockdown.
The home side ended the half strongly but a stunning save from Brad Friedel denied Dunn from close-range.
The second half was slower to get going, but ended with a bang. Reduced to ten men after Vince Grella's second yellow, Rovers upset the form book and their man disadvantage to dominate the latter stages as Friedel denied Emerton, whilst Richard Dunne blocked a Dunn effort on the line.
But with just a minute of the 90 remaining, Dunne handled Di Santo's effort and David Dunn stepped up to send Friedel the wrong way from the resulting spot kick to deliver Villa their first defeat in seven outings and a much needed three points for Sam Allardyce's side.
After the disappointing display against Everton last time out in the league, manager Sam Allardyce has promised changes, and he made four.
With Gaël Givet absent through injury, it meant a return to starting line-up for captain Ryan Nelsen. Lars Jacobsen was preferred at right back to Michel Salgado, whilst Steven Nzonzi was chosen ahead of Keith Andrews.
Up front it was a first Ewood Park start for Franco Di Santo with Jason Roberts dropping out of the 18-man squad altogether.
There were some familiar faces amongst the Villa ranks as Martin O'Neill named both Brad Friedel and Stephen Warnock in their starting eleven that featured just the one change from their last league outing, Steve Sidwell being replaced by Fabian Delph.
Things couldn't have started worse for Rovers as they conceded from the first attack of the game. A long ball out of defence by Brad Friedel was flicked on by Milner allowing Agbonlahor to race through, the England striker seemed to scuff his shot across goal but the ball still had enough on it to beat Paul Robinson before rolling in off the foot of the far post.
But Rovers could have hit back straight away with two chances in the space of two minutes. Morten Gamst Pedersen blazed wide when well placed, whilst Franco Di Santo latched onto a Ryan Nelsen header only to see his shot well blocked by former Rover Stephen Warnock.
Villa were enjoying the greater possession with Young and Milner looking lively on the flanks, but it was Rovers who got back on level terms just past the midway point.
From a Villa clearance Ryan Nelsen drop kicked the ball back towards goal, Franco Di Santo made enough of a nuisance to make the defence struggle as the ball dropped and there was Chris Samba to lash home from ten yards.
In an end-to-end first half, Ashley Young fizzed a drilled effort a yard wide, whilst Rovers went even closer at the other end.
A long throw from Morten Gamst Pedersen caused chaos in the Villa penalty area as Rovers players won header after header, eventually the ball dropped to David Dunn who hit an overhead kick from six yards out but somehow Brad Friedel denied Rovers with an outstanding reflex save.
Rovers started the second half brightly, with the visitors struggling to cope with balls into the area. Franco Di Santo and David Dunn both going close with headers.
The Rovers front two looked lively, Dunn fired over Friedel's bar, whilst Di Santo couldn't find Dunn with a downwards header in the area.
Neither side had chosen to make changes at the break, but soon the substitutes board was being shown in each camp. Brett Emerton replaced Morten Gamst Pedersen, whilst Emile Heskey came on for Fabian Delph.
With both sides cancelling each other out chances were at a premium as the match becane more of a midfield battle. Yellow cards were flashed on either side, Dunn for Rovers, Petrov for Villa, but with twenty minutes remaining Vince Grella, who had been booked in the first half, received his second yellow card of the game followed by the inevitable red.
That prompted Allardyce to remove El-Hadji Diouf and replace him with Keith Andrews. When Brad Friedel left the comfort of his area to clear the ball fell invitingly for the Irishman but he resisted the invitation to shoot first time and by the time he did Villa had enough men back to clear the danger.
Rovers may have been a man down, but you'd never have guessed it as it was the home side that dominated the remainder of a pulsating match.
Lars Jacobsen, who again had another solid game at the back for Rovers, took on Villa midfielder Stiliyan Petrov before skipping past the Bulgarian before cutting the ball back for Brett Emerton, the Aussie let fly but Brad Friedel showed those instincts so often displayed at Ewood to dive to his left to push the ball around the post.
The finish was frantic and it ended in Rovers' favour. David Dunn thought he had given Rovers the lead on 87 minutes but he saw his shot cleared off the line by Richard Dunne.
Moments later Villa defender Dunne handled as Di Santo looked to get an overhead kick on goal. For once a decision from the referee was given in the home side's favour, a penalty, he ruled.
With normal penalty taker Benni McCarthy sat on the bench, the job was up to boyhood Blackburn man David Dunn. Facing his former team-mate Brad Friedel, and up against his former city rivals from his days as a Birmingham player would nerves play a part? Not a chance, Dunn stepped up and confidently drove into the left corner of the goal with Friedel heaading into the opposite direction.
As quicky as four additional minutes were shown, Rovers were forced into a late reshuffle at the back as Michel Salgado came on for the injured Chris Samba.
And although there were a couple of nervy moments as James Collins and James Milner both had late efforts, they were straight at Paul Robinson.
When the final whistle the cheers around Ewood Park were in relief as much as delight.
With big month of matches ahead, the win could prove to be priceless.
ROVERS: Robinson, Jacobsen, Samba (sub Salgado 89 mins), Nelsen (c), Chimbonda, Diouf (sub Andrews 71 mins), Grella, Nzonzi, Pedersen (sub Emerton 56 mins), Dunn, Di Santo.
Subs not used: Brown (GK), McCarthy, Kalinić, Hoilett.
ASTON VILLA: Friedel, Dunne, Young, Milner, Carew, Agbonlahor, Delph (sub Heskey 57 mins), Petrov (c), Cuellar, Warnock, Collins.
Subs not used: Guzan (GK), Delfouneso, Reo-Coker, Shorey, Beye, Gardner.
Booked: Grella, Dunn (Rovers), Delph, Petrov (Aston Villa).
Off: Grella (Rovers)