Two late goals from Pavel Pogrebnyak kept alive Reading's play-off hopes and condemned Doncaster to a nervy final game to avoid relegation.
- Related Content
Rovers were the better side at the start and went in front with a 25th-minute goal from James Coppinger as Reading struggled to find their form.
But the visitors turned the tables after the interval and levelled the scores thanks to a 63rd-minute penalty from Adam Le Fondre.
Doncaster battled in vain to restore their lead and were left with nothing to show for a brave display when Pogrebnyak struck in the closing stages.
It means Doncaster face the daunting task of travelling to champions Leicester next Saturday needing to win to have any hope of avoiding relegation.
Both sides needed a victory and it was end-to-end action from the start.
But the play-off chasing visitors looked more nervous than their relegation-threatened rivals, who forced the pace and played the better football.
Reading boss Nigel Adkins cut an agitated figure on the touchline as he tried to urge his players on.
But when the Royals did press forward they found Abdoulaye Meite in outstanding form in the home defence.
Meite, playing after having a red card rescinded at Millwall last week, was strong in the tackle and won virtually everything in the air.
Doncaster deservedly took the lead in the 25th minute with Billy Sharp, who spent a loan spell at Reading earlier in the year, setting up the chance.
Sharp latched onto a short pass and crossed to the unmarked Coppinger, who slipped the ball home confidently from the far side of the box.
Coppinger returned the favour 10 minutes later with a superb cross from the right but Sharp's powerful near-post header was well saved by Alex McCarthy.
Reading finished the half not having managed a single shot on target.
Doncaster continued to play in enterprising fashion after the break but Reading were coming more and more into the game boosted by a half-time pep talk.
The visitors had lost their nerve and looked a different side but a penalty saw them finally find the net.
Paul Quinn clipped Le Fondre's legs as he raced through on a diagonal run in the box and the referee immediately pointed to the spot.
Le Fondre picked himself up and drove home the penalty under Sam Johnstone as he dived to his right.
Doncaster immediately tried to respond but Chris Brown was just unable to connect with a right-wing cross from Paul Keegan with the goal gaping.
Le Fondre missed a great chance at the other end when he completely miscued after Garath McCleary had set up the chance.
But Pogrebnyak made no mistake with two late goals to snatch victory for Reading to the delight of the travelling fans.
Jake Taylor supplied the cross for Pogrebnyak to head home at the far post in the 87th minute and Doncaster were caught pushing forward in search of an equaliser when he put the issue beyond doubt deep into stoppage time.
A quick breakaway led to Alex Pearce putting Pogrebnyak through to fire home from close range, ending Rovers' brave resistance and snatching three points which had looked unlikely earlier in the match.