Chelsea had two players sent off and lost out to a Heidar Helguson penalty in a heated west London derby.
Helguson won the spot-kick after he was pushed by David Luiz and then beat Petr Cech, who got a touch on the effort.
Jose Bosingwa was sent off for bringing down Shaun Wright-Phillips when through on goal and Didier Drogba was then dismissed for a lunge on Adel Taarabt.
Nicolas Anelka wasted a headed chance late on as the visitors pushed for an equaliser but Rangers held on.
The Chelsea players appeared to take little notice of their manager Andre Villas-Boas who warned before the match of the "emotional challenge" they faced, with the tight stadium at Loftus Road and the added intensity of the derby.
In the end a lack of discipline proved costly with seven bookings and two red cards.
His counterpart Neil Warnock got his tactics spot on as the home side prevented Chelsea from getting into any sort of groove in the first half.
Did you know?
The win was QPR's first at home since 4 April
And their first against Chelsea since 1995
Shaun Derry was making his 600th senior appearance
Frank Lampard was making his 500th Premier League appearance.
Chelsea struggled to keep possession as QPR harried and chased at every opportunity, giving their opponents no time on the ball.
The home side grew in confidence and took the lead after only nine minutes, from their first foray into the penalty area.
Luiz struggled with the movement of Helguson in the box, as he collected a long ball and the Brazilian barged him over, leaving referee Chris Foy little option but to point to the spot.
Taarabt thought he should take the resulting spot-kick but Helguson won the battle and beat Cech from the penalty spot, although the keeper did get a touch he could only palm the ball into the roof of the net.
Rangers continued to push as the visitors struggled against the power of their opposition.
Villas-Boas critical of referee
The challenge was made even harder for Chelsea on 29 minutes when Bosingwa was shown a straight red card.
The Portuguese defender was battling with his former Chelsea team-mate Wright-Phillips, who was through on goal, before he went down under the pressure.
Foy was quick to produce the red card for denying the goalscoring opportunity although the decision seemed harsh.
Chelsea were then reduced to nine men on 41 minutes when Drogba was instantly dismissed for a reckless tackle.
There was no question over the red card this time, as Drogba went in two-footed on midfielder Taarabt.
Half-time could not come quickly enough for Villas-Boas to try to reorganise his side.
Whatever he said seemed to work as Chelsea started the brighter in the second period, Frank Lampard seeing a header deflected wide before Branislav Ivanovic forced a good save from Paddy Kenny.
Warnock backs refereeing decisions
The Blues felt they had two good appeals for a penalty as they continued to press for an equaliser.
Lampard was brought down by Fitz Hall inside the box, while Luiz appeared to be held by Helguson - referee Foy waved away the protests.
With only 10 minutes to go they had their best chance to equalise.
Ivanovic swung in an excellent ball on to the head of Anelka but his effort was straight at an alert Kenny.
Three minutes later and the visitors went close again when Luiz hit an overhead kick, but Lampard, placed in front of the goal, deflected the ball over the bar.
Luiz, Raul Meireles, Ashley Cole and John Terry were all booked in the closing stages as things threatened to boil over.
Booking Raul Meireles goes into the referee's book for unsporting behaviour.
Joey Barton has an effort at goal from just outside the area which goes wide of the left-hand post.
John Terry takes a shot. Save made by Patrick Kenny.
Unfair challenge on Mikel by Joey Barton results in a free kick. Direct free kick taken by David Luiz.
Free kick crossed right-footed by Joey Barton, Petr Cech makes a save.
Booking The referee cautions David Luiz for unsporting behaviour.
Free kick awarded for a foul by David Luiz on Anton Ferdinand.
The official flags Tommy Smith offside. Ashley Cole takes the free kick.
Shot by Nicolas Anelka. Blocked by Anton Ferdinand.
Alejandro Faurlin concedes a free kick for a foul on Nicolas Anelka. Raul Meireles crosses the ball from the free kick right-footed from right channel, Clint Hill makes a clearance.
Tommy Smith is ruled offside. Petr Cech restarts play with the free kick.
Substitution Tommy Smith comes on in place of Adel Taarabt.
Short corner taken by Ashley Cole from the left by-line, Centre by Raul Meireles.
David Luiz restarts play with the free kick.
Booking Joey Barton receives a yellow card for unsporting behaviour.
Free kick awarded for a foul by Joey Barton on John Terry.
The assistant referee flags for offside against Shaun Wright-Phillips. Indirect free kick taken by Petr Cech.
Direct free kick taken by Patrick Kenny.
Booking Branislav Ivanovic is cautioned.
Free kick awarded for a foul by Branislav Ivanovic on Adel Taarabt.
Effort from outside the box by John Terry goes wide right of the target.
Luke Young produces a right-footed shot from deep inside the penalty area which goes wide of the left-hand post.
The assistant referee flags for offside against Shaun Wright-Phillips. Free kick taken by David Luiz.
Direct free kick taken by Petr Cech.
Booking Frank Lampard booked.
Booking Shaun Derry is shown a yellow card.
Free kick awarded for a foul by Shaun Derry on Frank Lampard.
Shot on goal comes in from Alejandro Faurlin from the free kick.
Booking Mikel receives a yellow card.
Free kick awarded for an unfair challenge on Adel Taarabt by Mikel.
Frank Lampard takes a shot. Blocked by Anton Ferdinand. Corner taken by Raul Meireles from the right by-line, clearance made by Alejandro Faurlin.
The ball is delivered by Branislav Ivanovic, Patrick Kenny makes a save.
The ball is crossed by Raul Meireles, Frank Lampard takes a shot. Anton Ferdinand gets a block in. Inswinging corner taken right-footed by Frank Lampard from the left by-line, clearance by Heidar Helguson.
The referee gets the second half started.
45:00 +2:26 Half time
Half Time The referee blows for half time.
Unfair challenge on Clint Hill by David Luiz results in a free kick. Clint Hill takes the direct free kick.
45:00 +0:56 Substitution
Substitution Nicolas Anelka is brought on as a substitute for Juan Mata.
Shaun Wright-Phillips is flagged offside by the assistant referee. Direct free kick taken by David Luiz.
Free kick awarded for an unfair challenge on Raul Meireles by Joey Barton. Direct free kick taken by Petr Cech.
Heidar Helguson gives away a free kick for an unfair challenge on David Luiz. Free kick taken by David Luiz.
Direct free kick taken by Patrick Kenny.
Dismissal Didier Drogba is shown a red card for serious foul play.
Free kick awarded for an unfair challenge on Adel Taarabt by Didier Drogba.
Long distance shot from Raul Meireles misses to the left of the net.
Raul Meireles fouled by Shaun Derry, the ref awards a free kick. Direct free kick taken by Mikel.
Substitution Branislav Ivanovic replaces Daniel Sturridge.
Joey Barton concedes a free kick for a foul on Petr Cech. Free kick taken by Petr Cech.
Adel Taarabt produces a strike on goal direct from the free kick, save by Petr Cech.
Dismissal The referee shows Jose Bosingwa a red card for professional foul.
Shaun Wright-Phillips fouled by Jose Bosingwa, the ref awards a free kick.
Shaun Wright-Phillips produces a right-footed shot from just outside the box that misses to the right of the target.
Adel Taarabt fouled by Mikel, the ref awards a free kick. Free kick taken by Adel Taarabt.
Free kick awarded for an unfair challenge on Joey Barton by Frank Lampard. Free kick crossed by Joey Barton, Didier Drogba manages to make a clearance.
The ball is delivered by Jose Bosingwa, save by Patrick Kenny.
Clint Hill concedes a free kick for a foul on Daniel Sturridge. Jose Bosingwa takes the free kick.
Raul Meireles is penalised for a handball. Patrick Kenny restarts play with the free kick.
Effort from outside the box by Didier Drogba goes wide right of the target.
Free kick awarded for an unfair challenge on Daniel Sturridge by Alejandro Faurlin. Mikel takes the free kick.
Jose Bosingwa delivers the ball, Anton Ferdinand manages to make a clearance. Frank Lampard takes the outswinging corner, David Luiz produces a headed effort from deep inside the six-yard box which goes wide of the right-hand upright.
The referee blows for offside. David Luiz takes the free kick.
Ashley Cole has an effort at goal from outside the box which goes wide right of the goal.
Foul by Mikel on Heidar Helguson, free kick awarded. Adel Taarabt crosses the ball from the free kick right-footed from left wing, Petr Cech makes a save.
Inswinging corner taken by Juan Mata from the right by-line, free kick awarded for an unfair challenge on Fitz Hall by Didier Drogba. Patrick Kenny takes the direct free kick.
Corner taken by Juan Mata from the right by-line. Effort from just outside the box by Frank Lampard goes over the bar.
Daniel Sturridge takes a shot. Clint Hill gets a block in.
Unfair challenge on Ashley Cole by Joey Barton results in a free kick. Frank Lampard restarts play with the free kick.
Fitz Hall fouled by Ashley Cole, the ref awards a free kick. Patrick Kenny takes the free kick.
9:03 Goal scored
Goal! - Heidar Helguson - QPR 1 - 0 Chelsea Penalty taken right-footed by Heidar Helguson and scored. QPR 1-0 Chelsea.
David Luiz concedes a Penalty for a foul on Heidar Helguson.
Mikel challenges Adel Taarabt unfairly and gives away a free kick. Free kick crossed right-footed by Joey Barton, save by Petr Cech.
Shaun Derry gives away a free kick for an unfair challenge on Didier Drogba. Frank Lampard delivers the ball from the free kick right-footed from left channel.
Anton Ferdinand gives away a free kick for an unfair challenge on Didier Drogba. Raul Meireles restarts play with the free kick.
Daniel Sturridge has an effort at goal from the edge of the box that misses to the right of the target.
Daniel Sturridge fouled by Clint Hill, the ref awards a free kick. Direct free kick taken by David Luiz.
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.