Idrissa Sylla’s 75th-minute goal gave QPR their first home league win since the opening day of the season.
Tjaronn Chery found Massimo Luongo on the right and the Australian’s marvelous cross was met with an emphatic first-time finish by striker Sylla.
Rangers’ win, only their third in 10 league matches, was thoroughly deserved given their second-half dominance, and came despite them losing Joel Lynch and Jordan Cousins to injury.
Both teams created openings in an even first half at Loftus Road.
Sylla headed over from Chery’s corner and Luongo was denied by a last-ditch challenge from Adam Matthews after bursting into the City box.
Ariel Borysiuk then saw a powerful strike deflect narrowly wide as Rangers continued to press.
At the other end, Steven Caulker needed to produce a well-timed challenge to deny Lee Tomlin, who also saw a shot pushed away by Alex Smithies.
But the best chance of the first half fell to City’s on-loan Chelsea striker Tammy Abraham.
The 19-year-old has been prolific for the Robins, scoring 11 goals this season, but he fired wide of the target from 10 yards out a minute before the interval.
With his team in desperate need of a win, Rangers boss Jimmy Floyd Hasselbaink made a number of changes to his starting line-up.
In came Cousins along with Luongo, Conor Washington and Sylla, with Chery moved to the right flank and Sebastian Polter dropping to the bench with Karl Henry, Pawel Wszolek and Olamide Shodipo.
Hasselbaink, already without the injured Grant Hall, had to make another change to his back four when Lynch limped off just after the half-hour mark and was replaced by youngster Niko Hamalainen at left-back.
And Rangers were forced into another change eight minutes into the second half when midfielder Cousins, just back from a hamstring injury, also had to come off.
QPR nevertheless made a lively start to the second period and shortly after Chery’s strike was saved by keeper Frank Fielding, Washington’s deflected effort from near the edge of the penalty area hit the bar.
Washington also went close when he shot narrowly wide of the near post after holding off Aden Flint, before Fielding saved Caulker’s header from Chery’s corner.
Having had to absorb a sustained spell of pressure, the visitors would have scored after a 72-minute counter-attack but for a fine save from Smithies.
City broke from a Rangers corner and Tomlin threaded the ball through for Bobby Reid, who turned away from Borysiuk only to see his shot blocked by the keeper.
It proved to be a crucial save, because three minutes later Sylla broke the deadlock with his third goal since his August move from Anderlecht.
Click here for today’s QPR quiz
This post was last modified on 19/10/2016