RANGERS were punished for a sluggish first-half showing at Ashton Gate, as two goals before half-time earned relegation-threatened Bristol City an important win.
Strikes from Marlon Pack (14 minutes) and Jamie Paterson (40) did the damage in this Sky Bet Championship affair.
After the break, the Robins continued to pose the greater threat in front of goal, before R's substitute Idrissa Sylla reduced the deficit right at the end of five added minutes.
But anything more for QPR would have been harsh on Lee Johnson's charges, who saw out the final seconds to take a deserved victory.
Following defeat to table-topping Brighton & Hove Albion seven days ago, Rangers boss Ian Holloway decided to make five changes to his starting line-up for the trip to his native Bristol.
Jake Bidwell, ex-Robins man Luke Freeman, Darnell Furlong, Yeni Ngbakoto and Pawel Wszolek were all restored to the XI.
James Perch and Conor Washington dropped down to the substitutes’ bench, while Grant Hall, Ravel Morrison and Jack Robinson missed out altogether.
And there was a welcome return to the bench for Kazenga LuaLua, following his recent spell on the sidelines through injury.
In a 4-3-3 formation, QPR lined up as: Alex Smithies; Furlong, Nedum Onuoha, Joel Lynch, Bidwell; Massimo Luongo, Freeman, Ryan Manning; Wszolek, Matt Smith, Ngbakoto.
When the contest got underway, it was the hosts who were presented with the first opportunity.
On the stretch, Onuoha couldn’t get enough conviction on his clearance – following Korey Smith’s ball in from the right – before Paterson blazed over from 18 yards.
Bristol City enjoyed the better start – and it was Johnson’s men who duly struck first in the 14th minute.
Matty Taylor flicked on a right-wing corner and when the ball fell for Pack, he drilled a low effort into the bottom left-hand corner.
In response, Rangers’ maiden chance arrived following a breakaway in the 19th minute. Manning fed Ngbakoto down the left, who cut in before firing handsomely over from 20-yards out.
Five minutes later, meanwhile, Freeman’s turn and shot – after Wszolek’s right-flank pass – forced a comfortable low stop from Frank Fielding.
And Rangers spurned their best chance of the match yet in the 32nd minute, when lovely skill from Freeman enabled the former Arsenal trainee to lead an R’s counter attack.
Freeman in turn fed Wszolek down the right, before the Polish international’s eventual pull-back saw Manning shoot just over from the edge of the box.
QPR – who began slowly – were now beginning to experience a little more joy on the break.
However, unfortunately, the home scored again in the 40th minute to take a two-goal advantage into the interval.
Taylor’s inch-perfect through-ball was latched onto by Paterson, who kept his cool to slide an effort beyond the advancing Smithies from 16 yards.
Holloway opted for a half-time sub, with Washington sent on to replace Furlong. Rangers also switched to a 3-4-3 formation in the process.
But Bristol City should have added a third goal in the 48th minute.
Robins top scorer Tammy Abraham freed Pack in the penalty area – though his tame effort did little to trouble Smithies.
A minute later, the R’s also should have scored.
Manning’s lovely pass found Washington on the left-hand side of the box and, when the striker crossed low for Ngbakoto, his stabbed attempt forced a fine reaction save from Fielding – the goalkeeper flinging out his right arm to claw the ball away.
QPR looked a bit more of an attacking threat following Washington’s introduction, who himself went close in the 55th minute. Tidy passing play from the Hoops ended with the Northern Irish ace shooting into the side-netting from 25 yards.
That being said, City again almost registered a third when Joe Bryan crashed a left-footed attempt only inches over on the hour.
The hosts went even closer in the 62nd minute.
First, Abraham’s attempt was deflected just over by Bidwell and, from the resultant corner, Bidwell again intervened to head off the line from Aden Flint.
Holloway used his final two subs after that. Sylla replaced Smith in the 69th minute, before Mackie came on for Ngbakoto two minutes later.
However, despite those changes, Rangers never really looked like finding a reply thereafter.
Again, City should have found the net once more, in the 79th minute, with Josh Brownhill crashing an effort over from 10 yards after a ball over the top.
At the other end, Washington’s low effort in second-half stoppage time left Fielding relatively untroubled.
Sylla would eventually breach Fielding's goal right at the death, bundling home Washington's cross at close range.
But it was too little, too late, as the referee called time on matters just seconds after the re-start.