Table-topping Brentford's home game with Crawley and second-placed Wolves' trip to Stevenage were postponed due to waterlogged pitches, as was the game between Colchester and fifth-placed Rotherham.
That gave Orient a chance to step up the pressure, having started the day a point behind Wolves and three behind Brentford - but that was where they stayed after they took the lead only for Posh to score twice in the last two minutes.
Britt Assombalonga equalised with two minutes remaining and it went from bad to worse for third-placed Orient as Tommy Rowe snatched a last-minute winner.
Preston, in fourth, were the only winners of the teams who started the day in the top six, winning 2-1 at Tranmere.
Joe Garner scored both Preston's goals, either side of Rovers defender Ash Taylor's equaliser in first-half stoppage time.
Eighth-placed Swindon came from two goals down to beat Port Vale 3-2.
Doug Loft and Tom Pope gave Vale a half-time lead but goals from Nile Ranger, Alex Pritchard and Nathan Byrne turned the game around.
At the bottom, Sheffield United remain in the relegation zone despite beating fellow strugglers Shrewsbury 2-0. Early goals from Ryan Flynn and Stefan Scougall lifted the Blades to 21st in the table.
The Blades are a point below the safety line but one ahead of Bristol City, who came from behind to draw 1-1 at Oldham. Aden Flint cancelled out Danny Philliskirk's opener, all within the first 10 minutes.
Notts County moved out of the bottom four with a 3-0 win over Coventry. Hayden Mullins and Jimmy Spencer struck in the first half before Alan Sheehan's late penalty.
Carlisle are one place above the drop zone after losing 2-1 at home to Gillingham. Joe Pigott and Cody MacDonald scored late in each half to give Gillingham the points despite Leon Legge's stoppage-time own goal.
Stevenage remain bottom but their postponement means they now have three games in hand on the Robins and Shrewsbury, the two teams immediately above them.
Bradford recovered from 2-0 and 3-2 down to draw 3-3 with Crewe in the day's other game.
Crewe's Uche Ikpeazu scored his second of the day in the 54th minute but Bradford were level five minutes later thanks to James Hanson and Gary Jones. Mathias Pogba put Crewe ahead again but Jones' second ensured the points were shared.
- Sports & Recreation
- David Mooney