Christian Benteke put Villa ahead with a crisp strike in the first half but Jordan Henderson equalised early in the second period before Steven Gerrard claimed Liverpool’s winner from the penalty spot.
Defeat left Villa third from bottom in the English top flight, but although they only trail fourth-bottom Wigan Athletic on goal difference,Roberto Martinez’s side have a game in hand.
Villa had been bidding for a third successive win, but instead their momentum deserted them ahead of a run of games that includes daunting trips to Stoke City and leaders Manchester United.
Liverpool, meanwhile, closed to within five points of the European places, although the three teams immediately above them – Chelsea, Arsenal and Everton – all have a game in hand.
Liverpool manager Brendan Rodgers made four changes to the team beaten 3-1 by Southampton in their previous outing, with Jose Reina, Jamie Carragher, Lucas Leiva and Henderson coming into the side.
Joe Bennett was the only new face in the Villa line-up, but the left-back nearly crafted the opening goal in the fourth minute at Villa Park with an inviting centre that narrowly eluded Benteke.
Another cross from a Villa full-back, this time Matthew Lowton, almost yielded a goal in the 16th minute, but Reina produced a point-blank save to thwart Gabriel Agbonlahor.
It was Liverpool, though, who made most of the early running.
Glen Johnson saw a deflected shot gathered by Villa goalkeeper Brad Guzan, while Luis Suarez poked a shot over, dragged an effort wide, and had two attempts at goal repelled by Guzan.
Villa’s opener, in the 31st minute, came against the run of play.
After Ashley Westwood’s searching ball towards the Liverpool box was knocked down by Agbonlahor, Benteke dispatched a meaty strike that brushed Reina’s right glove en route to the bottom-left corner.
Liverpool were quickly back on the attack and Guzan twice came to the hosts’ rescue in the minutes leading up to half-time.
The American blocked a meek shot from Suarez after Barry Bannan had inadvertently given the Uruguayan a clear run on goal, before pushing away a swerving strike from Gerrard.
Villa have been dogged by an inability to protect leads in the league this season and their fragility cost them once again as Liverpool turned the game around within 15 minutes of kick-off in the second half.
The visitors needed just two minutes to draw level, as Philippe Coutinho released Henderson with a beautifully judged pass and the former Sunderland player deftly chipped the advancing Guzan.
Coutinho rolled a shot inches wide from Suarez’s pass and Johnson struck the post before Gerrard levelled on the hour with an inch-perfect penalty after Nathan Baker slid in on Suarez.
Back came Villa, and after Andreas Weimann ballooned Yacouba Sylla’s cut-back over the bar, Gerrard produced a captain’s clearance to head Benteke’s goal-bound header off his own goal-line.
Benteke thought he had snatched an equaliser in injury time, but his close-range half-volley was correctly ruled out for offside.