Doncaster Rovers 1-3 Reading
Two late goals from Pavel Pogrebnyak took Reading into the top six and left Doncaster in relegation danger.
The hosts deservedly led through James Coppinger's first-half shot as they looked to end a five-game winless run.
But a penalty from Adam Le Fondre after he had been tripped by Paul Quinn sparked a Reading fightback.
Pogrebnyak headed home and in stoppage time struck on the break to mean Doncaster might need a last-day win at Leicester to stay up.
Rovers defied their recent form to make a positive start and went in front when former Reading loanee Billy Sharp picked out Coppinger to steer the ball home.
Coppinger then crossed for Sharp to force Reading keeper Alex McCarthy into a near-post save.
Reading did not muster a single first-half effort on target but improved after the break as they looked to keep their promotion hopes alive.
And they equalised when Le Fondre converted his 15th goal of the season from the spot.
Le Fondre then wasted a chance to put Reading in front but with time running out Pogrebnyak struck.
The Russian striker nodded home his 12th goal of the season from a far-post Jake Taylor cross and then made the points safe as Doncaster pressed for a late leveller.
Alex Pearce's pass released Pogrebnyak to finish from close range, meaning a win in their final game of the season at home to promoted Burnley will guarantee Nigel Adkins' men a play-off place.
Reading manager Nigel Adkins:
"We weren't at our best in the first half but we had words during the interval and the response from the players was fantastic.
"There's a hunger and a passion about this side and it's in our own hands whether we are in the play-offs or not.
"We've got Burnley at home in the last match and that won't be easy but I'm expecting a full house and we will be going all out to win the game.
"We knew we had to win to keep our season alive and the players have gone out and done that."
Doncaster manager Paul Dickov:
"We were all gutted in the dressing room afterwards but we will get it out of our systems before we go again in the final match at Leicester.
"Now it's all down to the last match against my old club, who won't be doing us any favours. But I'm still confident we can avoid going down.
"There was drama at this club on the last game last season when we went up by winning at Brentford and there can be drama again at Leicester.
"Whatever happens, we'll go there and give it all we've got because we want to stay in this division - and we can't rely on other results going our way."
- 17TamasSubstituted forMcCombeat 89'minutes
- 4FurmanSubstituted forWellensat 69'minutes
- 10SharpSubstituted forRobinsonat 86'minutes
- 21De Val
- 12McClearyBooked at 80minsSubstituted forHectorat 90+2'minutes
- 16AkpanSubstituted forTaylorat 76'minutes
- 9Le FondreSubstituted forGorkssat 90'minutes
- Anthony Taylor
- Shots on Target