Aston Villa eased their Premier League relegation fears with a raucously entertaining 3-2 win over QPR at Villa Park.
In a game that made up in thrills what it lacked in quality, Paul Lambert's side prevailed thanks to Christian Benteke's late finish.
QPR had gone in front through Jermaine Jenas, before a Gabriel Agbonlahor goal on the brink of half time, and Andreas Weimann's smart finish turned the game around.
Andros Townsend's second goal in consecutive games drew QPR level again, only for Benteke to convert from a Weimann pull-back to send Villa Park into rapture.
The result moves Villa six points clear of the relegation zone, while QPR's recent revival comes to a shuddering halt - they sit bottom of the table.
Such a scoreline seemed unlikely in a first half that saw Villa at their toothless and frustrating worst.
All short passes and neat movement, they almost trick you into thinking them a decent side - until they try to get the ball into a genuine goalscoring position.
They spent the first half knocking the ball around in triangles but singularly failed to trouble the visitors until Agbonlahor's stoppage-time intervention.
Meanwhile, Chris Samba continued his human wrecking ball display for QPR. Sophisticated Samba's style may not be, but the Congolese defender is devastatingly effective.
A man-mountain, Samba acts as a magnet for the ball in both penalty boxes and drew an astonishing Brad Guzan save in the 10th minute. His looping header looked destined for the top-right corner, but the flying Guzan flung out his left hand to somehow tip the ball over.
Moments later, Guzan denied Samba again - this time getting a forearm to a powerfully-struck shot.
Less secure for QPR was right-back Jose Bosingwa, whose defensive frailties were exploited early on by Andreas Weimann.
Bosingwa and Julio Cesar should have conceded an indirect free-kick when the QPR goalkeeper picked up a clear backpass a yard from his own line, but referee Kevin Friend turned a blind eye.
The Portuguese did partly redeem himself, however, with a free-kick that came back off the Villa woodwork.
Samba was involved again when he dived for a low header and was involved in a nasty clash of heads with Nathan Baker.
The dazed Baker went off, to be replaced by Joe Bennett whose fateful mistake led to the first goal.
Bennett's sloppy pass inside from the left was intercepted and QPR motored through. Guzan saved Zamora's initial shot but could do nothing about the rebound, tucked away by Jenas.
It all changed just before the break when Villa's Matt Lowton abandoned short passing and took a more direct route, booming a diagonal cross in from the right that Agbonlahor glanced in with a downward header.
As the game progressed, both sides lost their shape and the game became chaotic but hugely enjoyable for the neutral.
Weimann gave Villa the lead on 59 minutes, collecting a Bennett pass, twisting into space and burying a superb shot - prompting a dance of delirious joy from Lambert.
But the celebrations were short-lived, as Townsend thumped QPR level, via a deflection on 73 minutes.
Villa would not be denied, however, and Weimann set up the winner with a fine run to the byline, before pulling the ball back for Benteke to slot into the empty net.
MAN OF THE MATCH
Andreas Weimann (Aston Villa): Scored one and set one up as Villa came from behind to win for the second week in a row.
ASTON VILLA: Guzan 8, Lowton 7, Vlaar 7, Clark 6, Baker 6, Westwood 6, Bannan 6, Sylla 5, Agbonlahor 7, Weimann 8, Benteke 7. Subs: N’Zogbia 6, Bowery N/A, Bennett 5.
QPR: Cesar 6, Bosingwa 5, Samba 8, Hill 6, Fabio 6, Townsend 7, Mbia 6, Park 6, Jenas 6, Zamora 6, Remy 7. Subs: Hoilett 6, Taarabt 7, Mackie N/A.