Match ends, Doncaster Rovers 2, Queens Park Rangers 1.
Doncaster full-back Paul Quinn scored in the 89th minute to inflict promotion-chasing QPR's second Championship defeat of the season.
Charlie Austin gave QPR the lead shortly before half-time when his tame shot slipped through the fingers of Ross Turnbull in the Rovers goal.
Theo Robinson equalised three minutes after the interval with a curling effort that appeared more like a cross.
But Quinn snatched victory for Rovers when he headed in Mark Duffy's corner.
It was not until the 17th minute that either side had a sight on goal. The impressive Duffy dribbled his way inside from the left and hit a shot from 20 yards that Robert Green saved easily.
Niko Kranjcar had a great chance to put Rangers in front a few moments later, but blasted wildly off target from close range.
Rangers netted when Jermaine Jenas prodded the ball to Austin, whose shot Turnbull, inexplicably, failed to deal with.
Like the Rangers goal, Doncaster's equaliser had a touch of good fortune about it.
Captain Richie Wellens picked out Robinson with a superb pass and the Doncaster striker curled the ball into the net from a narrow angle when it looked as if he was trying to cross the ball.
Rovers pressed for a winner with Federico Macheda smashing a fierce shot into the side-netting, before Bongani Khumalo headed over from a free-kick.
They got their reward in the final minute of normal time when former Cardiff player Quinn headed in.
Doncaster boss Paul Dickov: "We let the fans down at Charlton [in a 2-0 defeat on Tuesday] and this performance was for them.
"I'm proud of the way we played considering the injury problems we have at present and that was a terrific display against probably the best team in the division.
"Tactically I thought we got it right and pressed them when we didn't have the ball.
"We were a bit aggrieved to go in behind at the interval. It was an uncharacteristic mistake by Ross Turnbull but I told him he didn't have to apologise because he's dug us out of the mire a number of times this season.
"It was a chance for the players to dig in for him and they did that. It was a massive effort from everyone."
QPR assistant manager Kevin Bond: "We weren't happy with the way we played in the second half but you can't take anything away from Doncaster.
"We were satisfied with our position at the end of the first period. Although we hadn't played particularly well, we were in front and in control of the game.
"We expected a reaction from Rovers after the interval but we thought that if we weathered the storm the game would open up to our advantage.
"I don't think we did well enough to prevent the equaliser and, in fairness, Doncaster were the better side after that."
- 1TurnbullBooked at 90mins
- 19WellensBooked at 52mins
- 21De Val Fernandez
- 5DunneBooked at 82mins
- 16JenasBooked at 90mins
- 36O'NeilSubstituted forJohnsonat 63'minutes
- 19KranjcarSubstituted forHoilettat 77'minutes
- Oliver Langford
- Shots on Target
Second Half ends, Doncaster Rovers 2, Queens Park Rangers 1.
Ross Turnbull (Doncaster Rovers) is shown the yellow card.
Jermaine Jenas (Queens Park Rangers) is shown the yellow card for a bad foul.
Foul by Jermaine Jenas (Queens Park Rangers).
Richard Wellens (Doncaster Rovers) wins a free kick in the defensive half.
Andrew Johnson (Queens Park Rangers) wins a free kick in the defensive half.
Foul by Federico Macheda (Doncaster Rovers).
Corner, Doncaster Rovers. Conceded by Robert Green.
Attempt saved. Richard Wellens (Doncaster Rovers) right footed shot from the right side of the box is saved in the top centre of the goal. Assisted by James Coppinger.
Attempt missed. Federico Macheda (Doncaster Rovers) header from the left side of the six yard box misses to the right. Assisted by James Coppinger with a cross.
Goal! Doncaster Rovers 2, Queens Park Rangers 1. Paul Quinn (Doncaster Rovers) header from the centre of the box to the bottom right corner. Assisted by Mark Duffy with a cross following a corner.
Corner, Doncaster Rovers. Conceded by Clint Hill.
Attempt missed. Clint Hill (Queens Park Rangers) left footed shot from the centre of the box is just a bit too high following a corner.
Corner, Queens Park Rangers. Conceded by James Coppinger.
Attempt blocked. Junior Hoilett (Queens Park Rangers) right footed shot from the centre of the box is blocked.
Attempt missed. Bongani Khumalo (Doncaster Rovers) header from the centre of the box is too high. Assisted by Richard Wellens with a cross following a set piece situation.
Foul by Benoit Assou-Ekotto (Queens Park Rangers).
James Coppinger (Doncaster Rovers) wins a free kick on the right wing.
Foul by Jermaine Jenas (Queens Park Rangers).