Simon Howarth ended QPR's four match winning run by cashing in on a defensive mistake in the third minute of injury time.
His winner came after a slip from Danny Murphy let in Marvin Robinson to cross and see Rovers top scorer sweep the ball under the keeper.
Robinson's first touch after he came on as substitute had been to score the equaliser.
Rangers had stopped playing expecting the referee to blow for a foul on Jason Price but Paul Rejer waved play on and Richard Hinds crossed for Robinson to touch it past Nick Culkin.
Up till then there had been no sign that Rangers were in trouble after Steve Palmer struck his first goal of the season after Kevin Gallen had fired in from 15 yards out, only to see the ball land at the feet of Palmer who hammered in the rebound from 15 yards.
Until that point Rangers had dominated play. The dangerous Lee Cook on the left was always a threat and a barrage of his crosses kept keeper keeper John Achterberg involved from first to last.
Seconds after half time a deep cross from Cook found Brett Angell at the back post but his header was mistimed and looped on to the top of the net but there was nothing wrong with his downward header from the same supply line on 52 minutes.
Only a point blank stop from Achterberg saved the day and left Angell holding his head in disbelief.
After Palmer scored he tried his luck again in the 77th minute after good work from Angell, but this time his effort whistled wide.
Danny Shittu's attempt from 70 yards was never going to succeed once the keeper caught sight of the huge punt coming out of the sky at him, but it was a sign of Rangers' dominance which was only wrecked by Robinson's leveller.