Goals from Andre Ayew and Jamal Lowe lifted Steve Cooper's side into the automatic promotion places as the race to reach the Premier League heats up.
QPR has now gone eight matches without a win and boss Mark Warburton is under increasing pressure.
Chris Hughton and Aitor Karanka faced their former clubs in a 0-0 draw between Nottingham Forest and Birmingham City at the City Ground.
It was Hughton's Forest that often looked the more likely to snatch three points but it found itself up against a goalkeeper in good form in Neil Etheridge.
Famara Diedhiou came off the bench to fire a spectacular late winner as Bristol City beat bottom of the table Wycombe Wanderers 2-1 at Ashton Gate.
City took a 23rd-minute lead through Chris Martin's downward header.
Garath McCleary equalised on 68 minutes with a shot that took a wicked deflection off City substitute Adrian Mariappa.
Having done so twice before this season, Diedhiou then proved the match-winner as a replacement when blasting an unstoppable right-footed shot past Ryan Allsop with three minutes remaining.
Derby County's unbeaten run under interim manager Wayne Rooney was ended when Preston North End scored deep into stoppage-time to snatch a 1-0 victory at Pride Park.
Alan Browne curled in a superb finish to shatter Derby, which had played for 70 minutes with 10 men after striker Martyn Waghorn was shown a straight red for a dangerous tackle on the Preston skipper.
Fourth-placed Brentford consolidated its promotion push with a 3-2 win at Cardiff City, while Barnsley beat Yorkshire rival Huddersfield Town 2-1.
Stoke City recorded a fourth successive Championship clean sheet in a 0-0 draw at Coventry City, while Blackburn Rovers drew 1-1 with second-bottom Sheffield Wednesday.
Reading moved into fifth place after defeating Luton Town 2-1.