David Nugent's 75th-minute penalty gave champions Leicester a 1-0 victory over Doncaster and doomed Rovers to relegation in a dramatic finale to the Sky Bet Championship season.
Doncaster looked safe until Birmingham came back from 2-0 down to draw at Bolton, thanks to a last-gasp equaliser from Paul Caddis.
The Doncaster players looked stunned and shell-shocked when they heard the news at the final whistle.
Nugent's penalty, after Riyad Mahrez was fouled by James Husband, was his 20th league goal of the season and took the Foxes to a record 102 points
Leicester, who were without Matty James and Jamie Vardy because of injury, named 40-year-old Kevin Phillips in their starting line up giving him the perfect finale to his illustrious career.
The veteran striker, who has scored 287 goals for nine clubs, is hanging up his boots at the end of this season having enjoyed his fifth promotion to the Premier League.
Doncaster made two changes, with Husband and Lucas Neill replacing Billy Sharp and Enda Stevens. Despite their own worries about relegation, Doncaster sportingly lined up to applaud champions Leicester onto the field.
The sell-out crowd created a fantastic atmosphere but a low key first-half failed to live up to expectations. Doncaster, understandably, made sure they had plenty of players behind the ball while Leicester were in cruise control knowing full well that a draw would give them a record total of 100 points for the season.
But it was Doncaster who had the first sniff of a chance in the fourth minute when a slip by Wes Morgan let in Dean Furman but Kasper Schmeichel was off his line quickly to dive and save at his feet.
Nugent had Leicester's first shot at goal in the 12th minute but the ball deflected just past Phillips and out for a corner. There was very little goalmouth action at either end until Riyad Mahrez cut in from the right and fired just wide.
Then, in the 27th minute, Nugent missed a great chance to score when he beat the offside and raced clear only for Sam Johnstone to save his low shot with an outstretched leg. And 10 minutes later the Doncaster goalkeeper denied Nugent again, this time going down low to his left to turn the striker's close range effort from Ritchie De Laet's cross round the post.
Nugent lost out again as the half came to an end with Paul Quinn beating him in the air to clear a dangerous centre from Andy King.
The second half opened in similar fashion with neither side looking particularly sharp in their attacking play. Gabriel Tamas tried his luck from long range and while Danny Drinkwater forced Johnstone into another save from 25 yards. The biggest cheer of the afternoon so far, came in the 59th minute from Doncaster fans when the heard the news that Bolton had taken the lead against Birmingham.
It also added to Doncaster's determination not to concede a goal themselves. The 64th minute provided another emotional moment when Phillips was substituted to a standing ovation from the crowd and hugs from all the players. Anthony Knockaert replaced Phillips.
Knockaert had an immediate impact with a neat pass to Nugent but, for the third time, the striker saw his shot saved by Johnstone. But in the 75th minute Nugent finally netted his 20th league goal of the season, scoring from the penalty spot after Mahrez was brought down by Husband.
Four minutes later Doncaster could have equalised but Paul Keegan blazed a good chance high over the bar and Johnstone then pulled off another good save to keep out a fierce shot from Knockaert before the news came through about Birmingham's fight back.