Mikele Leigertwood scored in the 81st minute to send Reading back into the Barclays Premier League as they recorded a 1-0 victory over Nottingham Forest at the Madejski Stadium.
Leigertwood's late strike, coupled with West Ham's inability to beat Bristol City at Ashton Gate, means Brian McDermott's men cannot now be caught by the third-placed Hammers with two games to go.
Neil Adkins' Southampton also took a giant stride towards the top-flight with a 3-1 win at Peterborough to move five points clear of the Hammers. Jos Hooiveld and Billy Sharp settled any nerves by putting Saints 2-0 up inside the opening 10 minutes, and after Sharp added his side's third in the 57th minute, Tommy Rowe struck a late consolation.
Sam Allardyce's West Ham look almost certain to have to settle for a place in the play-offs after being held 1-1 at Bristol City. James Tomkins headed the visitors in front, but Cole Skuse equalised in the 29th minute.
City need one more win to secure survival after Portsmouth continued to keep their faint hopes alive with a 2-1 win over Crystal Palace. Scott Allan and Greg Halford scored for Pompey before Darren Ambrose pulled one back from the spot.
Coventry's npower Championship future is also hanging by a thread after a 1-0 home defeat to Millwall. Gary McSheffrey missed a penalty for the Sky Blues before Shane Lowry's 66th minute header gave the Lions victory.
Chris Hughton's Birmingham failed to claim the win that would have guaranteed them a play-off berth after being pegged back at Ipswich. Chris Burke put the Blues in front in the 45th minute, but Jay Emmanuel-Thomas equalised 15 minutes from time.
Blackpool consolidated their own play-off place with a 1-0 win over Leeds at Bloomfield Road. Martinez Angel scored the winner 11 minutes from time, shortly before Leeds defender Darren O'Dea was sent off for a second bookable offence.
Cardiff stayed sixth after goals from Joe Mason and Mark Hudson gave them a 2-0 home win over Derby, but Middlesbrough lost ground as they were held to a goalless draw by already doomed Doncaster, while Matt Fryatt's hat-trick gave Hull a 3-1 win over Barnsley - but the Tigers retain only a mathematical hope of clawing into the play-off places.
Brighton's top-six hopes are over despite coming from 2-0 down to draw 2-2 at home to Watford and Leicester's slim hopes were also ended as they were held to a goalless draw by Burnley.