Wigan Athletic were relegated back into League One as Reading beat them to confirm their play-off place.
The Royals’ leading scorer, Yann Kermorgant, gave them a perfect start, heading in Garath McCleary’s cross.
Wigan then lost Shaun MacDonald to a serious leg injury, after a collision with George Evans.
The visitors also lost Reece Burke before half-time, but they responded well, Callum Connolly heading their best chance into the side-netting.
Only bottom side Rotherham have scored fewer Championship goals than Wigan this season, and once again the Latics lacked a cutting edge, though Nick Powell twice forced former Wigan goalkeeper Ali Al-Habsi into saves.
Michael Jacobs also tested Al Habsi as Wigan piled forward late on, but they could not prevent a sixth defeat in their past eight away matches.
Reading were not at their best but had chances to extend their lead, with Lewis Grabban firing just wide, while penalty appeals were waved away after Kermorgant went down under a challenge from Stephen Warnock.
The Royals boast the second-best home record in the Championship, behind leaders Brighton, having racked up 53 points at the Madejski Stadium.
And victory here moved them up to third, a point ahead of Sheffield Wednesday and Huddersfield with one match left.
But it consigned Wigan, who needed to win and hope other results went their way, to a 23rd-place finish and an immediate return to League One.
Latics fail to make the step up
Wigan were unable to continue the form which took them to the League One title last season, as they took only five points from their opening nine games of the season.
Will Grigg also struggled to make the step up, with League One’s leading scorer last season scoring in only five league games this term.
That has contributed to the second-worst goalscoring record in the division, with Wigan managing a meagre 39 goals in 45 games.
Manager Gary Caldwell was sacked in October, five months after leading the club to promotion, but replacement Warren Joyce could not make the desired impact, winning only six of his 24 games before Graham Barrow replaced him.
Despite the changes, the Latics have not found a stable, winning line-up, with the club having used a league-high 41 players this season.