Marco Reich bagged a classy double to help end Crystal Palace's almost year-long away-day misery.
Reich scored twice in a three-minute spell midway though the first half, with Tom Soares sealing it in the last minute of play after Gareth Ainsworth had pulled one back before the break.
Palace's run of winless away matches stretched back to October 30 last year when they beat Birmingham 1-0, with England striker Andy Johnson scoring the winner.
With Johnson still out injured Iain Dowie's side had to rely on Dougie Freedman and Clinton Morrison up front - but Reich overshadowed them.
After the sides scrapped it out during the opening stages, the match burst into life in the 14th minute courtesy of a leaping Reich wonder goal.
Freedman beat the offside trap to free Morrison, who burst forward to provide for Reich to fire a superb volley - from his weaker right foot - into the top corner.
The German winger added a second three minutes later with a well-worked free-kick which squeezed through a hole in the QPR wall to leave goalkeeper Simon Royce stranded.
But QPR refused to lie down and Ainsworth, making the 400th senior appearance of his career, was on hand to nod in Lloyd Dyer's cross in the 19th minute.
Dyer, on a month's loan from West Brom, almost bagged one for himself in the 28th minute when he bamboozled Jobi McAnuff but shot into the side netting.
Morrison should have put daylight between the sides in the 37th minute after McAnuff crossed from the right, but the striker could only roll his shot across the face of goal.
And he committed the same offence straight after the break when he stretched out a leg to meet Freedman's cross but sent his shot wide.
Marc Bircham, who was one of seven players booked in a fiery derby match, will miss the match against Preston for picking up his fifth yellow card of the campaign
And he was lucky to stay on the pitch when he felled Soares three minutes later, but was let off by referee Andy D'Urso after Morrison became an unlikely ally for the Rangers midfielder.
R's substitute Shabazz Baidoo came close to levelling the scores in the 88th minute but shot into the side netting, before Soares took advantage of a defensive mix-up to seal the points for Dowie's men.