Doncaster 1-1 Leicester
Doncaster earned the point they needed to stay in the Championship but Leicester's play-off dreams are over after a draw at the Keepmoat Stadium.
Steve Brooker's 25-yard rocket in the 50th minute put Rovers ahead, before Ayegbeni Yakubu equalised late on.
Leicester had early openings and Darius Vassell thought he had scored but he was ruled offside.
Ryan Mason almost won it for Rovers late on but keeper Chris Weale touched the ball over the bar.
With a place in the play-offs still a realistic target, Leicester began brightly and former England international Vassell was soon on the front foot, latching onto a defence-splitting pass by Andy King, only to be denied by the assistant referee's flag.
Paul Gallacher and Yakubu then went close as the visitors continued to dominate, with Gallacher in particular testing Rovers' veteran keeper Neil Sullivan.
But the home side stood firm and Mason and Jason Hayter went close before the break, yet in both cases there was no-one to apply the killer touch.
Brooker replaced the ineffective Jason Euell at half-time and had an instant impact, trapping Sullivan's clearance 25 yards out and thumping a half-volley into the top corner.
This stunned Leicester into action, with Diomansy Kamara wasting a good chance from six yards, before Yakubu made amends when he finished off fine approach play by Vassell and Steve Howard.