Aston Villa missed the chance to pull out of the Premier League relegation zone as Liverpool came from behind to stay in the hunt for a European place.
Paul Lambert's side took the lead when Gabriel Agbonlahor's lay-off found Christian Benteke, who powered home.
Liverpool equalised shortly after the restart when Jordan Henderson dinked the ball past the reach of Brad Guzan.
And Steven Gerrard scored the winner from the spot after Nathan Baker brought down Luis Suarez in the area.
The second Liverpool goal came with 30 minutes left to play which gave the home side plenty of time to get something from the match.
Villa playing well enough - Lambert
However, after Austrian Andreas Weimann blasted his shot horribly high over the bar and Gerrard cleared Benteke's header off the line, it seemed the omens were not on Villa's side.
Boss Lambert now needs to reinvigorate his squad, who came into the match on the back of two successive league wins.
This defeat leaves them on 30 points, below 17th-placed Wigan on goal difference following the Latics' win against Norwich on Saturday.
Villa travel to Stoke next week before facing Manchester United and fellow strugglers Sunderland in what will be a crucial month in the future of the club.
It could have been a very different result for the Birmingham outfit had they not been so profligate in front on goal in the opening quarter of the match.
Jordan Henderson scored his third league goal of the season
Almost straight from the kick-off Joe Bennett, in for the injured Ciaran Clark, delivered a sumptuous ball from the left that both Benteke and Agbonlahor failed to connect with from six yards out.
Moments later, Matthew Lowton swung in a cross from the other wing which this time found Agbonlahor, who wasted a golden chance by firing straight at Reina.
They eventually took the lead when Ashley Westwood played a quarter-back pass into the path of Agbonlahor, who used his thigh to lay the ball into the path of Benteke. The Belgian, one of Villa's key performers this season, gave Pepe Reina no chance with his finish.
However, the half could have finished 3-3. Liverpool playmaker Suarez had two great chances - a shot that was tipped over by Brad Guzan and three that were easily saved when he was one-on-one with the Villa goalkeeper.
The United States international also came to the rescue when he punched a Gerrard drive clear that was destined for the top corner.
But he was helpless to stop the equaliser which came two minutes after the break. This time Gerrard found Philippe Coutinho with a long punt downfield.
Long way to go for Liverpool - Rodgers
The Brazilian midfielder threaded a precise ball through to Henderson, who lifted his shot past Guzan. It was an excellent move and finish.
Liverpool were in the ascendancy and Coutinho should have added another when he was put through by Suarez, while full-back Glen Johnson saw his strike come off a Villa player and rebound back off the far post.
The home side were holding on until the hour mark when Baker, who came through the Villa ranks, scythed down Suarez.
Referee Lee Mason pointed straight to the spot - there were few protestations. Gerrard stepped up and struck the ball low past Guzan.
More chances came Villa's way, but Weimann was wasteful when Yacouba Sylla found him with a ball from the right before Gerrard produced one of the best goalline clearances of the season when he nodded away Benteke's powerful header.
Liverpool manager Brendan Rodgers:
"We played reasonably well in the first half but we were punished for a mistake. We upped the tempo after the break and we were excellent. It is a terrific win for us. Both teams went right to the end.
"Our quality was there for all to see, and the rhythm and flow of our passing was improved.
"Villa went to a diamond and we exploited the space out wide. Coutinho's pass for the Henderson goal was superb, and Henderson's determination and desire to make the run was outstanding."
The offside flag is raised against Christian Benteke. Free kick taken by Jose Reina.
The referee blows for offside against Stewart Downing. Bradley Guzan restarts play with the free kick.
Sanchez Jose Enrique restarts play with the free kick.
90:00 +0:52 Booking
Booking Ashley Westwood goes into the book.
Free kick awarded for an unfair challenge on Jordan Henderson by Ashley Westwood.
Christian Benteke gives away a free kick for an unfair challenge on Steven Gerrard. Jose Reina restarts play with the free kick.
Raheem Sterling fouled by Charles N'Zogbia, the ref awards a free kick. Direct free kick taken by Jose Reina.
Fabian Delph challenges Luis Suarez unfairly and gives away a free kick. Leiva Lucas takes the free kick.
Shot from 20 yards by Charles N'Zogbia. Jamie Carragher gets a block in.
Shot by Luis Suarez. Bradley Guzan makes a save.
Outswinging corner taken left-footed by Charles N'Zogbia.
Fabian Delph gives away a free kick for an unfair challenge on Luis Suarez. Direct effort from the free kick comes in from Stewart Downing.
Raheem Sterling takes a shot. Save by Bradley Guzan.
Substitution Raheem Sterling comes on in place of Phillippe Coutinho.
Substitution Karim El Ahmadi is brought on as a substitute for Yacouba Sylla.
Steven Gerrard fouled by Charles N'Zogbia, the ref awards a free kick. Direct free kick taken by Leiva Lucas.
The referee blows for offside against Luis Suarez. Bradley Guzan restarts play with the free kick.
The offside flag is raised against Gabriel Agbonlahor. Jose Reina restarts play with the free kick.
Phillippe Coutinho takes a shot. Blocked by Ron Vlaar.
The ball is crossed by Matthew Lowton, save made by Jose Reina. Corner taken left-footed by Charles N'Zogbia from the left by-line, Steven Gerrard makes a clearance.
Glen Johnson gives away a free kick for an unfair challenge on Christian Benteke. The ball is swung over by Charles N'Zogbia, Fabian Delph takes the chance to get an effort at goal. Blocked by Daniel Agger. Inswinging corner taken right-footed by Ashley Westwood, Christian Benteke takes a shot. Blocked by Steven Gerrard. Corner taken by Charles N'Zogbia from the left by-line, Daniel Agger makes a clearance.
Substitution Charles N'Zogbia replaces Andreas Weimann.
Substitution Fabian Delph replaces Barry Bannan.
Shot from deep inside the area by Andreas Weimann goes over the bar.
Assist by Luis Suarez.
59:15 Goal scored
Goal! - Steven Gerrard - A Villa 1 - 2 Liverpool Placed penalty scored by Steven Gerrard. Aston Villa 1-2 Liverpool.
Nathan Baker challenges Luis Suarez unfairly and gives away a Penalty.
Glen Johnson has an effort at goal from just outside the area that bounces off the post.
The ball is delivered by Andreas Weimann. Barry Bannan sends in a cross, Daniel Agger manages to make a clearance.
Free kick awarded for a foul by Christian Benteke on Leiva Lucas. Free kick taken by Jamie Carragher.
Phillippe Coutinho has an effort at goal from just inside the box that misses to the left of the target.
The official flags Christian Benteke offside. Jamie Carragher takes the free kick.
Luis Suarez is ruled offside. Bradley Guzan takes the free kick.
Sanchez Jose Enrique crosses the ball, clearance by Matthew Lowton.
Gabriel Agbonlahor produces a right-footed shot from just outside the box that goes wide right of the target.
Barry Bannan takes the direct free kick.
Booking Steven Gerrard is shown a yellow card.
Steven Gerrard gives away a free kick for an unfair challenge on Gabriel Agbonlahor.
Assist on the goal came from Phillippe Coutinho.
46:42 Goal scored
Goal! - Jordan Henderson - A Villa 1 - 1 Liverpool Jordan Henderson scores a goal from just inside the area to the bottom left corner of the goal. Aston Villa 1-1 Liverpool.
Leiva Lucas is penalised for handball and concedes a free kick. Ron Vlaar takes the free kick.
The referee blows his whistle to start the second half.
45:00 +0:59 Half time
Half Time The referee blows for half time.
Foul by Glen Johnson on Christian Benteke, free kick awarded. Bradley Guzan takes the direct free kick.
Corner taken short by Stewart Downing.
Short corner worked by Stewart Downing. Steven Gerrard takes a shot. Save by Bradley Guzan.
Free kick awarded for a foul by Christian Benteke on Glen Johnson. Free kick taken by Glen Johnson.
The ball is sent over by Stewart Downing.
Luis Suarez takes a shot. Bradley Guzan makes a save.
Luis Suarez takes a shot. Nathan Baker gets a block in.
Glen Johnson crosses the ball, Nathan Baker manages to make a clearance.
Steven Gerrard takes a inswinging corner from the left by-line to the near post, Yacouba Sylla makes a clearance.
Leiva Lucas challenges Ashley Westwood unfairly and gives away a free kick. The ball is swung over by Barry Bannan, Christian Benteke takes a shot. Jose Reina makes a save.
Luis Suarez delivers the ball, Joe Bennett makes a clearance.
Luis Suarez has an effort at goal from long distance that goes wide left of the target.
Inswinging corner taken right-footed by Steven Gerrard, save made by Bradley Guzan. Steven Gerrard takes a inswinging corner from the left by-line to the near post, clearance made by Ron Vlaar.
Assist by Gabriel Agbonlahor.
30:38 Goal scored
Goal! - Christian Benteke - A Villa 1 - 0 Liverpool Christian Benteke finds the back of the net with a goal from the edge of the area to the bottom left corner of the goal. Aston Villa 1-0 Liverpool.
Luis Suarez takes a shot. Bradley Guzan makes a save.
Foul by Jamie Carragher on Christian Benteke, free kick awarded. Barry Bannan crosses the ball in from the free kick, Glen Johnson manages to make a clearance. Corner taken by Barry Bannan.
Long range shot by Gabriel Agbonlahor goes wide right of the target.
Sanchez Jose Enrique produces a cross, clearance made by Ron Vlaar.
The ball is sent over by Gabriel Agbonlahor.
Joe Bennett delivers the ball, clearance made by Jamie Carragher.
Joe Bennett sends in a cross, clearance made by Jamie Carragher.
Andreas Weimann produces a cross.
Leiva Lucas concedes a free kick for a foul on Gabriel Agbonlahor. Christian Benteke takes the free kick.
Luis Suarez takes a shot. Save by Bradley Guzan. Inswinging corner taken right-footed by Steven Gerrard, save by Bradley Guzan.
Stewart Downing delivers the ball.
The ball is sent over by Barry Bannan.
Yacouba Sylla fouled by Leiva Lucas, the ref awards a free kick. Barry Bannan crosses the ball from the free kick left-footed from left channel, clearance made by Jordan Henderson.
Inswinging corner taken by Barry Bannan.
Gabriel Agbonlahor takes a shot. Jose Reina makes a save.
Christian Benteke fouled by Leiva Lucas, the ref awards a free kick. Barry Bannan delivers the ball, Andreas Weimann takes a shot. Leiva Lucas gets a block in.
Andreas Weimann delivers the ball, Daniel Agger makes a clearance. Inswinging corner taken by Ashley Westwood.
The ball is sent over by Steven Gerrard, Nathan Baker manages to make a clearance. Outswinging corner taken by Steven Gerrard from the right by-line, clearance by Ron Vlaar.
Glen Johnson takes a shot. Bradley Guzan makes a comfortable save.
Effort on goal by Luis Suarez from just inside the area clears the crossbar.
Stewart Downing takes the outswinging corner, clearance by Ron Vlaar.
Stewart Downing is caught offside. Free kick taken by Bradley Guzan.
Luis Suarez is ruled offside. Bradley Guzan restarts play with the free kick.
Stewart Downing takes a shot from 20 yards. Matthew Lowton gets a block in.
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.