Match ends, Rotherham United 2, Reading 1.
Rotherham secured their Championship survival with a 2-1 victory over Reading that relegated Wigan and Millwall.
Second-half goals from Matt Derbyshire and Lee Frecklington at the New York Stadium gave the Millers only their second win in nine games.
They are now four points clear of Millwall and six ahead of Wigan with just one round of games to play.
Oliver Norwood pulled one back late on for 19th-placed Reading.
Rotherham had three points deducted last week for fielding an ineligible player, but have still managed to retain their Championship place after taking eight points from their last five matches.
And it has condemned Wigan, who won the FA Cup in 2013, to League One following their second relegation in three seasons.
The Latics will be joined in the third tier by Millwall, whose five-year stay in the Championship has also been ended by Rotherham's victory.
All of the relegation and automatic promotion spots in the second tier have been decided, meaning only two play-off spots are left to play for on Saturday. Ipswich, Derby, Brentford and Wolves all remain in contention.
But Rotherham's win means their trip to Yorkshire rivals Leeds United is now irrelevant. The Millers were in control in the opening half against Reading but were unable to break down a resilient away defence.
The deadlock was eventually broken on 52 minutes when Rotherham top-scorer Derbyshire pounced on a Danny Ward cross from close range for his 10th goal of the season.
That strike calmed home nerves and six minutes later Ward was again the provider with a low cross for Frecklington to prod home at the far post.
Midfielder Norwood ensured a nervy final four minutes for the Millers when he fired home from the edge of the box for only his second goal of the season, but Reading have now lost their last five matches.
- 5BroadfootSubstituted forWoodat 62'minutes
- 22WardSubstituted forGreenat 90'minutes
- 27DerbyshireBooked at 81minsSubstituted forBoweryat 81'minutes
- 14ChalobahSubstituted forMackieat 62'minutes
- 7PogrebnyakSubstituted forStaceyat 82'minutes
- 11ObitaSubstituted forMcClearyat 62'minutes
- Graham Salisbury
- Shots on Target
Second Half ends, Rotherham United 2, Reading 1.
Attempt saved. Simon Cox (Reading) right footed shot from outside the box is saved in the centre of the goal.
Corner, Reading. Conceded by Ben Pringle.
Substitution, Rotherham United. Paul Green replaces Danny Ward.
Offside, Rotherham United. Richard Smallwood tries a through ball, but Jordan Bowery is caught offside.
Foul by Jake Cooper (Reading).
Lee Frecklington (Rotherham United) wins a free kick on the right wing.
Goal! Rotherham United 2, Reading 1. Oliver Norwood (Reading) right footed shot from outside the box to the bottom left corner. Assisted by Stephen Kelly.
Michael Hector (Reading) wins a free kick in the defensive half.
Foul by Jordan Bowery (Rotherham United).
Jem Karacan (Reading) wins a free kick in the defensive half.
Foul by Lee Frecklington (Rotherham United).
Corner, Rotherham United. Conceded by Chris Gunter.
Substitution, Reading. Jack Stacey replaces Pavel Pogrebnyak.
Substitution, Rotherham United. Jordan Bowery replaces Matt Derbyshire.
Matt Derbyshire (Rotherham United) is shown the yellow card.
Attempt missed. Simon Cox (Reading) right footed shot from outside the box misses to the right. Assisted by Garath McCleary.
Corner, Reading. Conceded by Emiliano Martinez.
Attempt saved. Oliver Norwood (Reading) right footed shot from more than 35 yards is saved in the top right corner. Assisted by Jem Karacan.