Foxes goalkeeper Kasper Schmeichel was called into action on a handful of occasions before Posh made the breakthrough on the hour mark through Paul Taylor.
Captain Grant McCann should have extended the lead two minutes afterwards but his penalty was saved by Schmeichel.
Peterborough's 10th home win of the season looks like guaranteeing they will be playing Championship football again next season.
Leicester's hopes of gatecrashing the top six are even slimmer after this loss left them seven points adrift with six matches remaining.
Gabby Zakuani's back problem forced Posh boss Darren Ferguson to change his starting XI for the first time in six games. Mark Little came back into the side to replace the big defender.
The Foxes were unchanged after drawing 0-0 with east midlands rivals Nottingham Forest in midweek.
Jermaine Beckford put an early chance wide for the visitors before Schmeichel was worked for the first time shortly afterwards, helping McCann's free-kick over the crossbar in the seventh minute.
David Nugent, Ben Marshall and Wes Morgan tried their luck from long range without really troubling Paul Jones in the Peterborough goal.
Sol Bamba faired better, with Jones having to make a couple of parrying saves following headers from the big Ivorian before half-time.
In between, Schmeichel had to push away a 20-yarder from Taylor.
George Boyd flashed a shot just wide early in the second half before Lloyd Dyer went close at the other end.
Schmeichel then had to save with his feet to keep out an angled shot by Emile Sinclair.
Taylor made the breakthrough in style with a superb effort from 25 yards out that flew into the bottom right-hand corner.
Peterborough were presented with the chance to extend their lead in the 62nd minute when Schmeichel brought down Tommy Rowe but the Dane made amends by saving McCann's spot-kick.
Danny Drinkwater and Marshall threatened for Leicester midway through the second half but, once again, their efforts were from long range.
Marshall went closer with a shot from the edge of the box in injury time before Schmeichel made another block, denying Sinclair once more.