Aston Villa came from behind for the second week running to win and move six points clear of the relegation zone while keeping QPR rooted to the bottom.
Ex-Villa loanee Jermaine Jenas opened the scoring as he slid in a rebound.
Gabriel Agbonlahor headed the hosts level in first-half added time, seconds after QPR had hit the post, before Andreas Weimann put Villa in front.
Andros Townsend's deflected effort levelled the game, but Christian Benteke then slotted a vital winner.
Villa manager Paul Lambert said before kick-off that he was not "unduly worried" about the drop, and back-to-back league victories for the first time since May 2011 following last weekend's triumph at relegation rivals Reading will have boosted his confidence further.
Despite the pressure surrounding it, the match started at a sedate pace as the hosts knocked the ball around confidently without creating any chances.
As well as being the Premier League's fourth lowest scorers, at the start of the day only two clubs had conceded more than Villa, and the home side looked typically vulnerable as Rangers threatened with their first attack.
Keeper Brad Guzan was tested twice by Christopher Samba. First he pushed away the defender's dangerous looping header, then from the ensuing corner he scrambled to keep out a side-footed effort after Ciaran Clark's panicked clearance.
Villa v QPR at a glance
- The two clubs have met 42 times in the league and have never shared a goalless draw
- Villa's Christian Benteke has scored seven league goals in his last eight outings.
- This was only the sixth league game in which QPR have scored more than once this season
Samba was involved again minutes later as he clashed heads with Nathan Baker, with the Villa defender forced off with concussion.
This incident played a part in the opener as his replacement Joe Bennett under-hit an aimless pass into the centre of the pitch that was intercepted by Jenas.
The midfielder, who has been capped 21 times by England and scored a tremendous half-volley in last Saturday's 3-1 win against Sunderland, found Zamora and was quickest to react when the striker's effort was saved.
QPR were now in control and, after a superb curled effort from £8m January signing Loic Remy was saved, went within inches of doubling their lead as Jose Bosingwa rattled the post with a free-kick.
Villa counter-attacked and equalised against the run of play thanks to Agbonlahor, who nodded in unmarked from a deep Matthew Lowton cross with Bosingwa failing to pick up his man.
Spurred on by the late goal, a rejuvenated Villa dominated after the interval, with Weimann their most dangerous player.
First, he forced Julio Cesar to tip over the crossbar after being found at the back post by Bennett, then the pair were involved as Villa took the lead.
After QPR failed to clear a corner, the left-back put in an excellent diversionary run that opened up a gap for Weimann to beat the goalkeeper at his near-post with a low drive.
The momentum was with Lambert men's but QPR broke up the pitch and found the back of the net after Tottenham loanee Townsend's harmless shot on the edge of the area ricocheted off Ron Vlaar's leg and into the corner.
In prior months, Villa's lack of experience in the side had been cited as a cause of their relegation worries.
But that problem was not evident as they rallied to go in front as Benteke took advantage of some non-existent marking from the visitors inside the penalty box to slot in his 13th Premier League goal of the season unopposed after being found by a low centre from the excellent Weimann.
QPR reacted by pushing Villa back to the edge of their area in the final 10 minutes.
With centre-backs Clark and Vlaar at the fore, a number of high balls were repelled before Clint Hill, much to the relief of the majority at Villa Park, shot over with the last kick of the game.
- 22 Guzan
- 04 Vlaar
- 06 Clark
- 32 Baker (Bennett - 20' )
- 34 Lowton
- 15 Westwood
- 18 Sylla Booked (N'Zogbia - 58' )
- 25 Bannan Booked
- 11 Agbonlahor
- 20 Benteke
- 26 Weimann Booked (Bowery - 84' )
- 01 Given
- 27 Bennett
- 10 N'Zogbia
- 24 Dawkins
- 40 Carruthers
- 14 Holman
- 21 Bowery
Queens Park Rangers
- 33 Julio Cesar
- 05 Samba
- 06 Hill
- 19 Bosingwa
- 20 Fabio (Taarabt - 66' )
- 07 Park Ji-sung (Mackie - 87' )
- 16 Jenas
- 29 Townsend
- 40 M'bia Booked
- 18 Remy
- 25 Zamora (Hoilett - 46' Booked )
- 26 Murphy
- 15 Onuoha
- 10 Taarabt
- 11 Wright-Phillips
- 14 Granero
- 23 Hoilett
- 12 Mackie
Live Text Commentary
Full Time The referee blows for the end of the match.90:00 +5:30
Effort from the edge of the area by Clint Hill goes wide of the right-hand post.90:00 +3:20
Andros Townsend takes a shot. Blocked by Ciaran Clark. Corner taken right-footed by Jose Bosingwa from the right by-line, Headed effort from deep inside the penalty area by Stephane Mbia goes harmlessly over the crossbar.90:00 +1:04
Free kick awarded for an unfair challenge on Stephane Mbia by Charles N'Zogbia. Direct free kick taken by Jose Bosingwa.90:00 +0:29
Free kick awarded for an unfair challenge on David Hoilett by Charles N'Zogbia. Stephane Mbia restarts play with the free kick.90:00
Jordan Bowery fouled by Clint Hill, the ref awards a free kick. Charles N'Zogbia takes the free kick.88:55
Adel Taarabt takes a shot. Matthew Lowton gets a block in.87:29
Bradley Guzan restarts play with the free kick.87:29 Booking
Booking David Hoilett is cautioned by the ref for unsporting behaviour.87:18
Free kick awarded for a foul by David Hoilett on Christian Benteke.86:24
Direct free kick taken by Jose Bosingwa.86:24 Substitution
Substitution Jamie Mackie on for Ji-Sung Park.86:24
Jordan Bowery concedes a free kick for a foul on Adel Taarabt.85:19
Outswinging corner taken left-footed by Barry Bannan, Headed effort from inside the box by Christian Benteke misses to the right of the target. Ashley Westwood takes a outswinging corner.85:04
Jordan Bowery delivers the ball, clearance by Jose Bosingwa.83:58
Adel Taarabt concedes a free kick for a foul on Joe Bennett. Charles N'Zogbia produces a cross, Headed effort from deep inside the area by Christian Benteke misses to the right of the goal.83:01 Substitution
Substitution Andreas Weimann leaves the field to be replaced by Jordan Bowery.81:13
A cross is delivered by David Hoilett, Header from close in by Loic Remy misses to the left of the goal.80:03
Andreas Weimann provided the assist for the goal.80:03 Goal scored
Goal! - Christian Benteke - A Villa 3 - 2 QPR Goal scored by Christian Benteke from close in to the bottom left corner of the goal. Aston Villa 3-2 QPR.
Christian Benteke challenges Jermaine Jenas unfairly and gives away a free kick. Free kick taken by Jose Bosingwa.78:31
Effort on goal by David Hoilett from outside the area goes harmlessly over the bar.76:55
Loic Remy takes a shot. Ron Vlaar gets a block in. Corner taken right-footed by Adel Taarabt, save by Bradley Guzan.76:40
Matthew Lowton delivers the ball, clearance by Clint Hill.75:16
Andros Townsend has a shot on goal from long range that goes wide left.74:44
Centre by Andreas Weimann, clearance by Clint Hill.73:51
Andros Townsend fouled by Gabriel Agbonlahor, the ref awards a free kick. Stephane Mbia restarts play with the free kick.72:28
The assist for the goal came from Ji-Sung Park.72:28 Goal scored
Goal! - Andros Townsend - A Villa 2 - 2 QPR Andros Townsend fires in a goal from just outside the area to the bottom right corner of the goal. Aston Villa 2-2 QPR.70:39
Corner taken right-footed by Ashley Westwood, Christopher Samba manages to make a clearance.67:55
Corner taken right-footed by Ashley Westwood, Ciaran Clark takes a shot. Save made by Soares Julio Cesar.66:42
The ball is swung over by Ciaran Clark, clearance by David Hoilett.64:58
Direct free kick taken by Soares Julio Cesar.64:58 Substitution
Substitution Fabio Da Silva leaves the field to be replaced by Adel Taarabt.64:58
Gabriel Agbonlahor challenges Ji-Sung Park unfairly and gives away a free kick.64:23
Matthew Lowton has an effort at goal from deep inside the area missing to the left of the target.61:19
Christian Benteke takes a shot. Save made by Soares Julio Cesar.58:16
Assist by Joe Bennett.58:16 Goal scored
Goal! - Andreas Weimann - A Villa 2 - 1 QPR Andreas Weimann fires in a goal from the edge of the penalty box to the bottom right corner of the goal. Aston Villa 2-1 QPR.57:18
Save by Soares Julio Cesar. Corner taken by Ashley Westwood.57:18 Substitution
Substitution Charles N'Zogbia on for Yacouba Sylla.57:18
The ball is crossed by Joe Bennett, Andreas Weimann takes a shot.55:26
Christian Benteke takes a shot from just outside the penalty area clears the crossbar.54:49
Fabio Da Silva challenges Gabriel Agbonlahor unfairly and gives away a free kick. The free kick is delivered right-footed by Ashley Westwood from right wing.53:22
Outswinging corner taken from the right by-line by Ashley Westwood, Christopher Samba manages to make a clearance. Corner taken by Barry Bannan from the left by-line, save made by Soares Julio Cesar.52:25
Andros Townsend concedes a free kick for a foul on Joe Bennett. Joe Bennett takes the free kick.51:18
Free kick awarded for a foul by Gabriel Agbonlahor on Stephane Mbia. Free kick taken by Soares Julio Cesar.49:31
Foul by Yacouba Sylla on Fabio Da Silva, free kick awarded. Fabio Da Silva takes the free kick.45:39
Jose Bosingwa challenges Gabriel Agbonlahor unfairly and gives away a free kick. Ciaran Clark takes the direct free kick.45:01
The referee gets the second half underway.45:01 Substitution
Substitution Bobby Zamora leaves the field to be replaced by David Hoilett.45:00 +3:57 Half time
Half Time The whistle is blown to end the first half.45:00 +2:18
The assist for the goal came from Matthew Lowton.45:00 +2:18 Goal scored
Goal! - Gabriel Agbonlahor - A Villa 1 - 1 QPR Gabriel Agbonlahor grabs a headed goal from deep inside the penalty area. Aston Villa 1-1 QPR.45:00 +0:35
Shot on goal comes in from Jose Bosingwa from the free kick. Inswinging corner taken right-footed by Jose Bosingwa played to the near post, Ron Vlaar makes a clearance.45:00 +0:35 Booking
Booking Booking for Andreas Weimann for dissent.43:48
Unfair challenge on Jermaine Jenas by Ashley Westwood results in a free kick. Jose Bosingwa sends in a cross, Jermaine Jenas takes a shot. Save by Bradley Guzan. Christopher Samba fouled by Christian Benteke, the ref awards a free kick.42:30
Andreas Weimann gives away a free kick for an unfair challenge on Jose Bosingwa. Free kick taken by Jose Bosingwa.41:52
Free kick awarded for an unfair challenge on Yacouba Sylla by Loic Remy. Ron Vlaar restarts play with the free kick.41:03
The ball is sent over by Jose Bosingwa, Christopher Samba takes a shot. Save made by Bradley Guzan.41:03 Booking
Booking Barry Bannan shown a yellow card.41:00
Free kick awarded for a foul by Barry Bannan on Stephane Mbia.37:20
Effort on goal by Loic Remy from 20 yards. Save by Bradley Guzan. Outswinging corner taken right-footed by Jose Bosingwa from the right by-line to the near post, clearance by Ron Vlaar.32:08
Free kick awarded for an unfair challenge on Clint Hill by Gabriel Agbonlahor. Direct free kick taken by Soares Julio Cesar.30:47
Yacouba Sylla gives away a free kick for an unfair challenge on Andros Townsend.30:38
Direct effort from the free kick comes in from Bobby Zamora.30:38 Booking
Booking Booking for Yacouba Sylla.29:52
Unfair challenge on Ashley Westwood by Fabio Da Silva results in a free kick. Direct free kick taken by Yacouba Sylla.29:09
Foul by Christopher Samba on Christian Benteke, free kick awarded. Christian Benteke takes the direct free kick.28:17
Yacouba Sylla crosses the ball, clearance by Clint Hill.27:09
Matthew Lowton delivers the ball, clearance made by Clint Hill.25:39
Centre by Jose Bosingwa, Ciaran Clark makes a clearance.22:32
Assist by Bobby Zamora.22:32 Goal scored
Goal! - Jermaine Jenas - A Villa 0 - 1 QPR Jermaine Jenas finds the net with a goal from close in low into the middle of the goal. Aston Villa 0-1 QPR.22:32
Bobby Zamora takes a shot. Save made by Bradley Guzan.19:57 Substitution
Substitution Nathan Baker goes off and Joe Bennett comes on.19:23
Centre by Jose Bosingwa, save by Bradley Guzan.14:35
Outswinging corner taken left-footed by Barry Bannan, clearance by Christopher Samba.12:47
Free kick crossed by Barry Bannan.12:47 Booking
Booking Booking for Stephane Mbia for unsporting behaviour.12:42
Free kick awarded for a foul by Stephane Mbia on Andreas Weimann.8:19
Foul by Yacouba Sylla on Ji-Sung Park, free kick awarded. Jose Bosingwa restarts play with the free kick, Christopher Samba takes a shot. Bradley Guzan makes a save. Inswinging corner taken by Jose Bosingwa. Christopher Samba takes a shot. Save by Bradley Guzan. Corner taken by Jose Bosingwa, clearance made by Yacouba Sylla.7:25
The ball is swung over by Loic Remy.6:22
Unfair challenge on Fabio Da Silva by Yacouba Sylla results in a free kick. Clint Hill restarts play with the free kick.4:56
Outswinging corner taken from the left by-line by Barry Bannan.3:57
Andreas Weimann produces a cross, Christopher Samba makes a clearance.0:00
The referee gets the game underway.
Live data and text provided by our data suppliers