QPR collected a valuable victory in their battle against the drop as Samba Diakite's first goal for the club ended in-form Arsenal's winning run.
Adel Taarabt had darted past Thomas Vermaelen to fire in the game's opener but the hosts were soon pegged back.
Theo Walcott found space in the box and sidefooted into an open net after his initial effort came back off the post.
Paddy Kenny denied Robin van Persie one-on-one after the break before Diakite blasted in Jamie Mackie's pass.
The Hoops remain in the relegation zone only on goals scored, having the same points and goal difference as the Blackburn side who occupy 17th place.
Manchester United, Manchester City, Tottenham and Chelsea are among QPR's final seven games, but, after defeating Liverpool in their previous home game , Mark Hughes' side will fancy their chances of taking more big-name scalps in the run-in.
The hosts showed the industry and determination that has become their manager's hallmark, but there was no shortage of quality to their play either.
With seven Premier League successive victories behind them, Arsenal began with a confidence that ebbed away as they soon found themselves forced back.
Taarabt's erratic set-piece delivery came good as Bobby Zamora nodded over while Alex Song was fortunate to escape when Nedum Onuoha's volley appeared to strike his hand.
As QPR grew in belief, Taarabt skinned Vermaelen with a slick shuffle of feet, advanced on goal and wrapped a low curling shot round Wojciech Szczesny to put his side ahead.
The Moroccan had taken more shots than any other player without scoring in the Premier League, but his finish made a mockery of that statistic.
QPR's fans were cheering every pass as their team moved the ball about neatly in the middle of the field, but their joy came to an end when Arsenal struck back without warning.
As a clutch of QPR defenders were drawn to van Persie on the edge of the box, Walcott sneaked free of his marker and tucked the ball home at the second attempt after the division's top-scorer had smuggled the ball to him through Clint Hill's legs.
With the scores level, neither side could gain an upper hand early in the second half.
Mackie was denied a penalty - falling under Laurent Koscielny's challenge while gamely chasing a long ball - in between dangerous efforts at the other end from Kieran Gibbs and Aaron Ramsey.
Van Persie, without a goal in his previous two games, had a great chance but Kenny managed to palm away his fierce shot after the Dutchman had scampered clear.
Diakite gave Szczesny no chance to match those heroics though as he slammed Mackie's cut-back into the net shortly after.
Arsenal threw on Marouane Chamakh and Alex Oxlade-Chamberlain and ushered Szczesny forward for a late corner, but Joey Barton came as close as anyone to adding to the scoreline, as the visitors tasted defeat in the league for the first time since 22 January.
Arsenal manager Arsene Wenger: "Our performance was not good enough to win this kind of game.
"They had a little bit of extra special commitment that took advantage of us in some specific positions defensively.
"Subconsciously something was missing today. In the Premier League, if you miss something on the commitment front you are beaten."
Queens Park Rangers
- 01 Kenny
- 03 Hill
- 34 Taiwo
- 35 Ferdinand Booked
- 42 Onuoha
- 02 Diakite Booked
- 04 Derry
- 07 Taarabt Booked
- 17 Barton Booked
- 12 Mackie Booked
- 52 Zamora (Wright-Phillips - 90' )
- 24 Cerny
- 06 Gabbidon
- 18 Young
- 14 Buzsaky
- 32 Wright-Phillips
- 09 Campbell
- 10 Bothroyd
- 13 Szczesny
- 03 Sagna
- 05 Vermaelen Booked
- 06 Koscielny
- 28 Gibbs (Chamakh - 81' )
- 07 Rosicky
- 08 Arteta (Oxlade-Chamberlain - 81' )
- 14 Walcott
- 16 Ramsey (Gervinho - 69' )
- 17 Song Booked
- 10 Van Persie
- 21 Fabianski
- 11 Santos
- 20 Djourou
- 15 Oxlade-Chamberlain
- 30 Benayoun
- 27 Gervinho
- 29 Chamakh
Live Text Commentary
Full Time The game is over, as the referee blows his whistle.90:00 +3:51
Free kick crossed left-footed by Robin van Persie from right wing, clearance by Clint Hill.90:00 +3:51 Booking
Booking Samba Diakite is booked.90:00 +3:33
Samba Diakite concedes a free kick for a foul on Alex Oxlade-Chamberlain.90:00 +3:22 Booking
Booking Joey Barton is cautioned by the ref for unsporting behaviour.90:00 +3:16
Joey Barton gives away a free kick for an unfair challenge on Alex Oxlade-Chamberlain. Alex Oxlade-Chamberlain restarts play with the free kick.90:00 +0:19 Substitution
Substitution (QPR) makes a substitution, with Shaun Wright-Phillips coming on for Bobby Zamora.90:00 +0:19
Unfair challenge on Joey Barton by Laurent Koscielny results in a free kick. Anton Ferdinand takes the indirect free kick.89:29
Robin van Persie has a direct shot on goal from the free kick, blocked by Shaun Derry.89:29 Booking
Booking Anton Ferdinand booked for unsporting behaviour.89:06
Anton Ferdinand challenges Marouane Chamakh unfairly and gives away a free kick.87:41
Free kick awarded for a foul by Anton Ferdinand on Marouane Chamakh. Free kick crossed right-footed by Tomas Rosicky.84:25
Joey Barton takes a shot. Save made by Patrick Kenny. Corner taken right-footed by Adel Taarabt.83:49
Right-footed shot by Samba Diakite went wide of the right-hand upright.83:13
Bobby Zamora fouled by Alex Song, the ref awards a free kick. Indirect free kick taken by Nedum Onuoha.81:50
Unfair challenge on Marouane Chamakh by Joey Barton results in a free kick. Thomas Vermaelen takes the indirect free kick.80:28 Substitution
Substitution (Arsenal) makes a substitution, with Marouane Chamakh coming on for Kieran Gibbs.80:28 Substitution
Substitution Alex Oxlade-Chamberlain replaces Mikel Arteta.79:38
Corner taken right-footed by Mikel Arteta, Close range headed effort by Alex Song misses to the right of the target.79:16
Free kick awarded for an unfair challenge on Tomas Rosicky by Anton Ferdinand. Indirect free kick taken by Tomas Rosicky.
Inswinging corner taken by Adel Taarabt.74:03
Jamie Mackie takes a shot. Save made by Wojciech Szczesny.71:36
Inswinging corner taken by Mikel Arteta from the left by-line, clearance made by Samba Diakite.68:46 Substitution
Substitution Yao Gervinho joins the action as a substitute, replacing Aaron Ramsey.68:29
Shot on goal by Laurent Koscielny from inside the box goes harmlessly over the target.68:02
Robin van Persie takes a inswinging corner to the near post, save by Patrick Kenny.66:51
Tomas Rosicky takes a shot. Patrick Kenny makes a save.65:12
Assist by Jamie Mackie.65:12 Goal scored
Goal! - Samba Diakite - QPR 2 - 1 Arsenal Samba Diakite scores a goal from deep inside the penalty box to the top right corner of the goal. QPR 2-1 Arsenal.64:03 Booking
Booking The referee shows Alex Song a yellow card.63:53
Alex Song challenges Joey Barton unfairly and gives away a free kick. Nedum Onuoha takes the free kick.61:39 Booking
Booking Jamie Mackie shown a yellow card.61:34 Booking
Booking Booking for Thomas Vermaelen.61:09
Free kick awarded for an unfair challenge on Alex Song by Bobby Zamora. Free kick taken by Thomas Vermaelen.60:08
Samba Diakite concedes a free kick for a foul on Mikel Arteta. Indirect free kick taken by Laurent Koscielny.59:34
Adel Taarabt takes a shot. Wojciech Szczesny makes a save.58:07
Robin van Persie takes a shot. Save by Patrick Kenny. Corner taken left-footed by Robin van Persie to the near post, Clint Hill manages to make a clearance.57:07
Robin van Persie takes a shot. Save by Patrick Kenny.56:28
Taye Taiwo is penalised for a handball. The free kick is delivered left-footed by Robin van Persie from right wing, save made by Patrick Kenny.51:15
Foul by Clint Hill on Mikel Arteta, free kick awarded. Robin van Persie takes the free kick. Thomas Vermaelen takes a shot. Bobby Zamora gets a block in.49:04
Bobby Zamora is ruled offside. Indirect free kick taken by Thomas Vermaelen.47:27
Kieran Gibbs produces a header from deep inside the six-yard box which goes wide of the right-hand post.45:01
The second half has started.45:00 +1:02 Half time
Half Time The referee blows for half time.44:59
Corner taken by Robin van Persie from the right by-line played to the near post, Clint Hill manages to make a clearance.43:51
The assistant referee flags for offside against Robin van Persie. Patrick Kenny takes the indirect free kick.42:54
Free kick awarded for an unfair challenge on Jamie Mackie by Aaron Ramsey. Free kick crossed right-footed by Adel Taarabt, clearance made by Bacary Sagna.42:24
Free kick awarded for a foul by Mikel Arteta on Adel Taarabt. Taye Taiwo takes the free kick.41:16
Tomas Rosicky takes a shot. Save by Patrick Kenny.39:04
Aaron Ramsey has an effort at goal from just outside the area which goes wide of the left-hand post.36:21
Assist by Robin van Persie.36:21 Goal scored
Goal! - Theo Walcott - QPR 1 - 1 Arsenal Theo Walcott fires in a goal from deep inside the penalty box high into the middle of the goal. QPR 1-1 Arsenal.36:18
Theo Walcott has an effort at goal from deep inside the penalty box that bounces off the post.35:32
Free kick awarded for a foul by Adel Taarabt on Bacary Sagna. Free kick taken by Alex Song.32:21
The referee blows for offside. Free kick taken by Laurent Koscielny.30:56
The official flags Jamie Mackie offside. Thomas Vermaelen restarts play with the free kick.27:00
Free kick awarded for a foul by Bobby Zamora on Laurent Koscielny. Free kick taken by Laurent Koscielny.26:29
Robin van Persie is flagged offside by the assistant referee. Patrick Kenny restarts play with the free kick.22:42 Booking
Booking Adel Taarabt shown a yellow card.21:32
The assist for the goal came from Clint Hill.21:32 Goal scored
Goal! - Adel Taarabt - QPR 1 - 0 Arsenal Adel Taarabt gets on the score sheet with a goal from the edge of the penalty box to the bottom right corner of the goal. QPR 1-0 Arsenal.20:01
Bobby Zamora takes a shot. Save by Wojciech Szczesny.17:35
The assistant referee signals for offside against Theo Walcott. Indirect free kick taken by Patrick Kenny.14:57
Clint Hill takes a shot. Save made by Wojciech Szczesny.14:12
Thomas Vermaelen concedes a free kick for a foul on Bobby Zamora. The free kick is swung in right-footed by Adel Taarabt, clearance by Thomas Vermaelen.12:49
Free kick awarded for an unfair challenge on Joey Barton by Mikel Arteta. Adel Taarabt crosses the ball, Bobby Zamora has a header from inside the six-yard box and clears the crossbar.11:42
Outswinging corner taken from the right by-line by Adel Taarabt, Alex Song manages to make a clearance.11:11
Inswinging corner taken by Adel Taarabt, clearance by Tomas Rosicky.10:39
Aaron Ramsey is penalised for a handball. Free kick crossed right-footed by Adel Taarabt, clearance made by Robin van Persie.10:18
Jamie Mackie takes a shot. Laurent Koscielny gets a block in.9:07
Unfair challenge on Samba Diakite by Alex Song results in a free kick. Free kick taken by Adel Taarabt.8:22
Jamie Mackie is ruled offside. Free kick taken by Thomas Vermaelen.6:53
Clint Hill concedes a free kick for a foul on Theo Walcott. Shot comes in from Robin van Persie from the free kick, save by Patrick Kenny.6:36
The assistant referee flags for offside against Bobby Zamora. Mikel Arteta restarts play with the free kick.6:24
Thomas Vermaelen concedes a free kick for a foul on Joey Barton. Joey Barton restarts play with the free kick.5:10
The referee blows for offside against Jamie Mackie. Wojciech Szczesny restarts play with the free kick.2:38
Corner taken by Robin van Persie from the right by-line played to the near post, clearance made by Clint Hill.0:26
Unfair challenge on Theo Walcott by Taye Taiwo results in a free kick. Mikel Arteta takes the indirect free kick.0:00
The ref blows the whistle to start the match.
Live data and text provided by our data suppliers