Southampton missed their chance to clinch promotion to the Premier League as Merouane Zemmama's superb free-kick gave Middlesbrough a thrilling win.
The Saints, who knew a victory would send them up, made the perfect start when Rickie Lambert set up Billy Sharp to score after just 47 seconds.
But Boro, who needed the three points to stay in the play-off race, levelled through Nicky Bailey's deflected shot.
And Zemmama won it 13 minutes from time with a curling shot into the corner.
The result means Reading are crowned champions and the race for the second automatic spot will go to the last day of the Championship season - if third-placed West Ham beat Leicester on Monday.
Saints need a win at home to relegated Coventry in next weekend's finale, otherwise they can be overhauled by the Hammers, who are five points behind Nigel Adkins' side but play the Foxes before facing Hull on Saturday.
Boro, meanwhile, can still finish in the top six if they beat Watford and Cardiff lose to Crystal Palace.
Tony Mowbray's men showed tremendous spirit to fight back from Sharp's first-minute strike, which came after some unselfish play by Lambert.
Adam Lallana's header played in Lambert who, with Boro keeper Jason Steele off his line and closing him down, unselfishly squared for Sharp to slot home from close range.
But Boro responded well, with Faris Haroun finding plenty of space down the right and sending in a dangerous low cross that Daniel Fox had to slide in to reach ahead of Lukas Jutkiewicz, before Barry Robson blasted over.
Robson joined Justin Hoyte in firing in further shots from distance and, although Fox fired just wide with a free-kick at the other end, the momentum was with Boro.
The home side deservedly levelled on the stroke of half-time, when Bailey met Jos Hooiveld's headed clearance with a first-time shot from the edge of the box which hit Richard Chaplow on its way into the net.
Saints responded by starting the second half on the attack and the game could have headed in a very different direction had referee Tony Bates decided to show Boro defender Seb Hines a second yellow card after 55 minutes for clipping Lallana's heels as he prepared to shoot on the edge of the box.
Bates kept his cards in his pocket, however, and Saints were unable to make their pressure count.
Boro belatedly began to venture forward again themselves and, when Fox fouled Jutkiewicz, Zemmama steped up to bend an unstoppable shot into the top corner.
The closest Saints came to an equaliser were two Guly Do Prado shots which fizzed just off target, and their fans will anxiously watch events at the King Power Stadium on Monday in the hope that Leicester can help their side over the finish line by taking some points off the Hammers.
Middlesbrough boss Tony Mowbray:
"That (win) keeps it alive for us, it keeps it bubbling.
"We know now we have to go to Watford and win. Yes, we would still need someone else to do us a favour - Cardiff have a tough game at Crystal Palace - but we are still in there and fighting.
"And, to be fair, the lads deserve it after that performance. To come from a goal down so early showed great character.
"But they knew they had to. They knew that only three points would do and they played in a very positive manner."
Southampton manager Nigel Adkins:
"It would have been nice to seal it today, especially for all those fans who have come such a long way to support us. But we will have to make sure we do it at home now.
"We know what we have to do next week when we play Coventry at our place in front of 32,000 people. We have to make sure.
"We had a great start here, it is not often you score a goal in the first minute and that should have given us a platform to go on and win the match, we know that.
"But credit to Middlesbrough, they worked very hard to get back in the match and they made it very difficult for us."