First-half goals from Clinton Morrison and Jobi McAnuff were enough to keep Crystal Palace's play-off bid firmly on course.
There looked to be no way back for QPR following a tepid display in the opening 45 minutes but they improved after the break and substitute Paul Furlong brought them back into the match after an hour.
Both teams had chances after that but none were taken to as Palace completed a league double over their London rivals.
Palace won chiefly thanks to their aggressive start, which yielded a third-minute goal.
Gary Borrowdale hooked a hopeful ball into the box from the left that the Rangers defence failed to deal with and Morrison - one of six changes to the Palace side - kept his nerve to volley into the bottom-left corner from seven yards for his ninth goal of the season.
Palace continued to force the pace. Wayne Andrews, Darren Ward and Morrison had all threatened before they doubled their lead in the 32nd minute.
Dougie Freedman - a 15th-minute substitute for the injured Jon Macken - robbed the dawdling Ian Evatt close to the right touchline before racing into the area and playing the ball to unmarked McAnuff, who stroked it calmly into the bottom-right corner.
Rangers looked finished, but caretaker-boss Gary Waddock's decision to switch from 4-5-1 to 4-4-2 midway through the first half began to pay off in the second.
Furlong - who had replaced defender Marcus Bignot midway through the first half - wasted a 48th-minute chance and Richard Langley squandered two opportunities before Rangers scored the goal their improvement deserved in the 61st minute.
Scott Donnelly - making his full debut - crossed from the right for Furlong to plant a fine header into Gabor Kiraly's bottom-left corner from 12 yards.
Rangers pushed for an equaliser and Marc Nygaard's shot was deflected wide and Steve Lomas drilled into the arms of Kiraly, but Palace found new verve and launched attacks of their own.
McAnuff thumped a 30-yard effort just over the crossbar, Freedman blazed over from 15 yards after Tom Soares had released him in the 71st minute, and seconds later Paul Jones did superbly to push Ward's far-post volley behind.
But Rangers were not disheartened and 15 minutes from time, Kiraly pushed Cook's right-wing corner against the crossbar under pressure from Dan Shittu.
In a frantic finale, Kiraly somehow denied Nygaard from three yards and Morrison shot into the side-netting following more good work by Soares.
Teams:
Crystal Palace Kiraly, Ward, Borrowdale, Boyce, Leigertwood,Watson, Soares, Andrews (Hughes 78), McAnuff,Macken (Freedman 15), Morrison.
Subs Not Used: Speroni, Fray, Grabban.
Booked: Leigertwood.
Goals: Morrison 3, McAnuff 32.
QPR Jones, Bignot (Furlong 37), Milanese, Evatt, Shittu, Cook,Donnelly (Baidoo 71), Lomas, Langley, Rose, Nygaard.
Subs Not Used: Santos, Kus, Thomas.
Booked: Milanese, Nygaard.
Goals: Furlong 56.
Att: 17,550
Ref: A Hall (W Midlands).