Aston Villa moved out of the relegation zone by beating Stoke, whose own survival prospects took a blow.
Gabriel Agbonlahor gave Villa the lead when he side-footed in from close range at the second attempt.
Villa almost added a second when Andreas Weimann's effort came back off the post, before Michael Kightly slammed in a shot to level for Stoke.
But a spectacular Matthew Lowton strike restored Villa's lead and Christian Benteke slotted in to wrap up the win.
It was a storming finish to the game from Villa as they claimed a third victory in four games to lift them three points above the relegation zone.
Wins for Wigan and Sunderland on Sunday could see Paul Lambert's side fall back into the bottom three, but this performance will give Villa plenty of confidence for the run-in.
In contrast, Stoke have won only once in their last 13 league outings and find themselves just four points from the bottom three, with their form and confidence looking increasingly fragile.
The Potters had an early penalty appeal turned down when a Jon Walters cross hit the arm of Villa defender Nathan Baker, and matters soon got worse for Tony Pulis's men.
"Aston Villa have thrown away so many games from winning positions but then came that goal from Matthew Lowton, which was a fantastic strike. Christian Benteke added to the Villa party and they were worthy winners."
Hesitant defending proved the home side's downfall as Villa took advantage of their let-off to quickly take the lead. Lowton combined with Jordan Bowery on the right flank before firing in a low cross for Agbonlahor, who scored after his initial shot came back off Geoff Cameron.
Stoke looked shocked and Bowery, 21, almost capitalised when he ran at the flailing home defence and curled an 18-yard shot into the side-netting.
Villa now had a firm grip on the game and again came close to a second when Weimann was denied by the woodwork.
Agbonlahor slipped a pass inside to release his fellow forward and the Austrian's low side-footed shot came back off the foot of the post, Potters keeper Asmir Begovic appearing to get a vital touch.
Agbonlahor then thought he should have had a penalty, racing through on goal before going down as he skipped past the outstretched leg of Begovic. The Villa striker was instead booked for diving.
Stoke were booed off at half-time and the Potters produced nothing to improve their fans' mood after the interval.
Instead, it was Villa who again went close when left-back Joe Bennett found Bowery, who got past Marc Wilson too easily but saw his shot blocked by Begovic.
Stoke, in danger of finishing bottom of the Premier League scoring charts for a second successive season, failed to make any real chances until a belated rally produced an equaliser. Midfielder Charlie Adam helped on a Walters pass to fellow sub Kightly, who fired in from 12 yards.
But it was a false dawn for the home side as Villa responded with Lowton's superb strike, the right-back chesting down a clearance 30 yards out and volleying spectacularly into the top corner.
Benteke completed the win when he broke clear late on and side-footed past Begovic.
- 01 Begovic
- 02 Cameron
- 04 Huth
- 12 Wilson (Jerome - 52' )
- 17 Shawcross Booked
- 30 Shotton Booked (Adam - 77' Booked )
- 15 Nzonzi
- 18 Whitehead
- 26 Etherington (Kightly - 46' )
- 09 Jones
- 19 Walters
- 29 Sorensen
- 28 Wilkinson
- 16 Adam
- 21 Kightly
- 10 Owen
- 25 Crouch
- 33 Jerome
- 22 Guzan
- 04 Vlaar
- 27 Bennett
- 32 Baker
- 34 Lowton
- 15 Westwood
- 16 Delph
- 11 Agbonlahor Booked (Sylla - 74' )
- 20 Benteke
- 21 Bowery (N'Zogbia - 82' )
- 26 Weimann (Bent - 85' )
- 01 Given
- 30 Lichaj
- 08 El Ahmadi
- 10 N'Zogbia
- 14 Holman
- 18 Sylla
- 09 Bent
Live Text Commentary
Full Time The final whistle goes and the game is over.90:00 +3:40
Foul by Steven Nzonzi on Joe Bennett, free kick awarded. Free kick taken by Joe Bennett.90:00 +2:30
Ryan Shawcross gives away a free kick for an unfair challenge on Joe Bennett. Direct free kick taken by Joe Bennett.90:00 +2:15
Michael Kightly challenges Joe Bennett unfairly and gives away a free kick. Direct free kick taken by Ron Vlaar.90:00 +1:19
Ron Vlaar takes the direct free kick.90:00 +1:19 Booking
Booking Booking for Charlie Adam for unsporting behaviour.90:00 +1:13
Charlie Adam concedes a free kick for a foul on Charles N'Zogbia.90:00 +0:01 Goal scored
Goal! - Christian Benteke - Stoke 1 - 3 A Villa Christian Benteke gets on the score sheet with a goal from just inside the area to the bottom right corner of the goal. Stoke 1-3 Aston Villa.87:50
Inswinging corner taken left-footed by Charlie Adam played to the near post, free kick awarded for a foul by Cameron Jerome on Bradley Guzan. Bradley Guzan takes the free kick.86:19
The assist for the goal came from Charles N'Zogbia.86:19 Goal scored
Goal! - Matthew Lowton - Stoke 1 - 2 A Villa Matthew Lowton finds the back of the net with a goal from long range to the top left corner of the goal. Stoke 1-2 Aston Villa.86:11
Corner taken left-footed by Charles N'Zogbia, Charlie Adam makes a clearance.86:01
Charles N'Zogbia takes the chance to get an effort at goal. Ryan Shawcross gets a block in.84:30 Substitution
Substitution Andreas Weimann leaves the field to be replaced by Darren Bent.82:50
Matthew Lowton challenges Charlie Adam unfairly and gives away a free kick. Cameron Jerome shoots direct from the free kick.81:25
Free kick taken by Geoff Cameron.81:25 Substitution
Substitution Charles N'Zogbia on for Jordan Bowery.81:25
Foul by Ashley Westwood on Kenwyne Jones, free kick awarded.79:08
Assist on the goal came from Charlie Adam.79:08 Goal scored
Goal! - Michael Kightly - Stoke 1 - 1 A Villa Michael Kightly finds the back of the net with a goal from deep inside the penalty box to the bottom left corner of the goal. Stoke 1-1 Aston Villa.
Bradley Guzan restarts play with the free kick.75:55 Substitution
Substitution Charlie Adam on for Ryan Shotton.75:55
Free kick awarded for an unfair challenge on Bradley Guzan by Robert Huth.73:49 Substitution
Substitution Gabriel Agbonlahor goes off and Yacouba Sylla comes on.70:31
Shot by Kenwyne Jones. Blocked by Nathan Baker.67:48
Matthew Lowton concedes a free kick for a foul on Cameron Jerome. Free kick taken by Dean Whitehead.65:01
Ashley Westwood crosses the ball from the free kick right-footed from right channel, save by Asmir Begovic.65:01 Booking
Booking Ryan Shawcross goes into the referee's book.64:54
Ryan Shawcross challenges Andreas Weimann unfairly and gives away a free kick.63:06
Ashley Westwood sends in a cross, Jordan Bowery takes a shot. Asmir Begovic makes a save.63:06 Booking
Booking Ryan Shotton goes into the book.62:56
Foul by Ryan Shotton on Christian Benteke, free kick awarded.62:42
Robert Huth is ruled offside. Free kick taken by Bradley Guzan.61:43
Free kick awarded for a foul by Steven Nzonzi on Andreas Weimann. Joe Bennett restarts play with the free kick, Geoff Cameron sends in a cross.58:32
Fabian Delph fouled by Steven Nzonzi, the ref awards a free kick. Bradley Guzan takes the direct free kick.56:22
Cameron Jerome sends in a cross, save by Bradley Guzan.53:27
Ryan Shawcross challenges Ashley Westwood unfairly and gives away a free kick. Free kick crossed left-footed by Fabian Delph from own half, save made by Asmir Begovic.52:45
Andreas Weimann is caught offside. Free kick taken by Asmir Begovic.51:23
Free kick crossed by Ashley Westwood, clearance made by Steven Nzonzi.51:23 Substitution
Substitution Cameron Jerome is brought on as a substitute for Marc Wilson.51:23
Unfair challenge on Fabian Delph by Jonathan Walters results in a free kick.49:47
Free kick awarded for an unfair challenge on Ryan Shotton by Christian Benteke. Geoff Cameron takes the direct free kick.47:59
The ball is crossed by Andreas Weimann.46:38
Jordan Bowery takes a shot. Save by Asmir Begovic.45:01
The referee gets the second half underway.45:01 Substitution
Substitution Michael Kightly on for Matthew Etherington.45:00 +0:56 Half time
Half Time The players leave the pitch at half time.44:30
Ryan Shawcross challenges Christian Benteke unfairly and gives away a free kick. Direct free kick taken by Joe Bennett.44:20
Centre by Marc Wilson, clearance by Nathan Baker.43:01
Shot by Dean Whitehead. Ron Vlaar gets a block in.40:54
Foul by Dean Whitehead on Ashley Westwood, free kick awarded. Free kick taken by Ron Vlaar.39:45
The assistant referee flags for offside against Kenwyne Jones. Ron Vlaar restarts play with the free kick.38:42
Robert Huth fouled by Christian Benteke, the ref awards a free kick. Ryan Shawcross restarts play with the free kick.38:13
Ryan Shotton produces a cross, save by Bradley Guzan.36:37
Free kick awarded for an unfair challenge on Jonathan Walters by Joe Bennett. Dean Whitehead crosses the ball, Header from deep inside the area by Ryan Shawcross goes over the bar.35:28
Asmir Begovic fouled by Gabriel Agbonlahor, the ref awards a free kick. Asmir Begovic takes the direct free kick.34:53 Booking
Booking Gabriel Agbonlahor booked for dissent.33:52
Ryan Shotton delivers the ball, save by Bradley Guzan.33:26
Free kick awarded for an unfair challenge on Ryan Shotton by Christian Benteke. Geoff Cameron takes the direct free kick.31:44
Ashley Westwood challenges Dean Whitehead unfairly and gives away a free kick. Asmir Begovic takes the free kick.30:56
A cross is delivered by Ryan Shotton, save by Bradley Guzan.29:32
Andreas Weimann produces a curled right-footed shot from the edge of the area and hits the post.26:12
Foul by Gabriel Agbonlahor on Geoff Cameron, free kick awarded. Ryan Shawcross takes the free kick.24:30
Free kick awarded for an unfair challenge on Gabriel Agbonlahor by Geoff Cameron. Bradley Guzan takes the free kick.24:06
Foul by Gabriel Agbonlahor on Jonathan Walters, free kick awarded. Direct free kick taken by Geoff Cameron.23:21
Inswinging corner taken from the right by-line by Matthew Etherington, Ron Vlaar manages to make a clearance.22:27
Gabriel Agbonlahor produces a left-footed shot from the edge of the area and misses to the left of the goal.17:19
Christian Benteke is flagged offside by the assistant referee. Free kick taken by Ryan Shawcross.16:43
The ball is sent over by Joe Bennett, clearance by Ryan Shawcross.13:48
Inswinging corner taken by Ashley Westwood from the left by-line, Christian Benteke takes a shot. Save by Asmir Begovic.13:17
Shot by Gabriel Agbonlahor from 20 yards. Ryan Shawcross gets a block in.11:50
Jordan Bowery has an effort at goal from the edge of the area that misses to the right of the target.8:25
Matthew Lowton provided the assist for the goal.8:25 Goal scored
Goal! - Gabriel Agbonlahor - Stoke 0 - 1 A Villa Gabriel Agbonlahor scores a goal from close range low into the middle of the goal. Stoke 0-1 Aston Villa.8:24
The ball is swung over by Matthew Lowton,7:12
The ball is crossed by Dean Whitehead, clearance by Nathan Baker.6:32
Corner taken by Dean Whitehead from the right by-line to the near post, Joe Bennett manages to make a clearance.5:32
Shot from deep inside the area by Kenwyne Jones clears the crossbar.3:39
Matthew Etherington takes a outswinging corner from the left by-line played to the near post.0:08
Free kick awarded for an unfair challenge on Fabian Delph by Marc Wilson. Direct free kick taken by Ron Vlaar.0:00
The ref blows the whistle to begin the match.
Live data and text provided by our data suppliers