Match ends, Doncaster Rovers 1, Leicester City 0.
An own goal by Leicester goalkeeper Kasper Schmeichel gave Doncaster only a third league win of the season.
The Dane fumbled Mark Duffy's 17th-minute corner into his own net to condemn Leicester to a second defeat of the campaign and leave City three points off the Championship's top two.
Jamie Vardy hit the post for the visitors, while Anthony Knockaert went close from distance.
Chris Brown fired over late on for Rovers, who moved 16th in the table.
Schmeichel's error gave promoted Doncaster only their second home win of the season and takes Paul Dickov's side six points above the relegation zone.
Leicester were chasing a third successive win for the first time since January and Nigel Pearson's side were beginning to settle when Schmeichel conspired to hand Doncaster the initiative.
Schmeichel was unchallenged as he moved to collect Duffy's delivery but dropped the ball into his own net.
On-loan Manchester United striker Federico Macheda almost doubled Rovers' advantage but was denied by a smart save from Wes Morgan.
Leicester defender Paul Konchesky saw a low 20-yard shot well held by Ross Turnbull late in the first half, before Vardy pulled down a cross to fire against the upright.
The pressure on the home side intensified after the re-start but resolute defending limited the Foxes to long-range efforts.
Knockaert fired a free-kick over from distance as the home side saw out the closing half an hour to complete victory.
Doncaster Rovers's manager Paul Dickov:
"We came up against a top team and competed very well with and without the ball.
"It takes a lot of courage to have a go against teams like that but we've done it and been rewarded.
"I didn't actually see the goal when the ball went in but I think we were due one after not getting our just desserts with some of our recent performances."
Leicester City manager Nigel Pearson:
"In a nutshell, the game's been settled by one incident really, but we've not created enough chances in open play to get back in it in the end.
"No doubt people will dwell on the goal but there will probably be more talk about it outside our dressing room than inside.
"Kasper's been exceptionally good since he came to the club and been responsible for winning matches and picking up lots of points with his performances."
- 10MachedaSubstituted forCoppingerat 75'minutes
- 2de LaetSubstituted forWasilewskiat 68'minutes
- 11DyerSubstituted forSchluppat 71'minutes
- 35NugentBooked at 87mins
- Mark Heywood
- Shots on Target
Second Half ends, Doncaster Rovers 1, Leicester City 0.
Corner, Leicester City. Conceded by Paul Quinn.
Offside, Doncaster Rovers. Chris Brown tries a through ball, but Theo Robinson is caught offside.
David Nugent (Leicester City) is shown the yellow card.
Foul by Paul Konchesky (Leicester City).
Paul Quinn (Doncaster Rovers) wins a free kick in the defensive half.
Attempt blocked. Mark Duffy (Doncaster Rovers) right footed shot from the centre of the box is blocked. Assisted by Paul Keegan.
Attempt missed. David Nugent (Leicester City) right footed shot from the centre of the box misses to the right.
Corner, Leicester City. Conceded by Bongani Khumalo.
Offside, Leicester City. Liam Moore tries a through ball, but David Nugent is caught offside.
Attempt missed. Chris Brown (Doncaster Rovers) right footed shot from the centre of the box is too high.
Bongani Khumalo (Doncaster Rovers) wins a free kick in the defensive half.
Foul by Wes Morgan (Leicester City).
Substitution, Doncaster Rovers. James Coppinger replaces Federico Macheda.
Attempt blocked. Anthony Knockaert (Leicester City) left footed shot from outside the box is blocked.
Foul by Rob Jones (Doncaster Rovers).
Jamie Vardy (Leicester City) wins a free kick on the right wing.
Substitution, Leicester City. Jeffrey Schlupp replaces Lloyd Dyer.
Foul by Paul Keegan (Doncaster Rovers).