Michael Bostwick put Posh ahead after 22 minutes with a superb long-range effort and on-loan Dagenham striker Dwight Gayle netted the second two minutes after the interval.
Rudy Gestede's late goal ensured a nervy finish for Darren Ferguson's team, but they held on for three crucial points.
The prolific Glenn Murray fired Crystal Palace into a 2-0 lead after an hour against Birmingham but they relinquished the advantage as substitute Nikola Zigic (66) and Papa Bouba Diop (82) scored.
Middlesbrough had to wait until late to breakdown a stubborn Wolves, with Martin Emnes netting an 89th-minute penalty after Karl Henry fouled Scott McDonald. The Australia striker then continued his recent scoring streak with his side's second in injury-time in the 2-0 win.
Hull won their lunchtime kick-off against Yorkshire rivals Huddersfield 2-0 thanks to goals from Robert Koren (eight) and David Meyler (90).
Chris Taylor scored the only goal of the game on 67 minutes as Millwall moved into the play-off places with a 1-0 home win over Leicester.
Watford dropped out of the top six as they drew 1-1 at Burnley and Blackpool beat derby rivals Blackburn 2-0 with goals from Wes Thomas (22) and Kirk Broadfoot (81).
Leeds joined Blackpool in the top half as they won a third successive home league game 2-0 over Ipswich. On-loan winger Jerome Thomas (20) and Paul Green (68) were on target.
David Ngog scored twice in the final 16 minutes as Bolton grabbed a much-needed 2-0 win over Charlton while Derby returned the same scoreline at Bristol City, while Brighton and Nottingham Forest played out a goalless draw at the Amex Stadium.