Two goals from top-scorer Craig Mackail-Smith made sure Gary Johnson's men recovered from falling behind early on in Monday's League One clash at London Road, before a hotly-disputed clincher from substitute Nathaniel Mendez-Laing left Walsall fuming. Substitute Ryan Bennett completed the scoring in injury time.
Alex Nicholls had already been denied in a one-on-one situation before heading his side ahead in the 10th minute.
Posh needed until nine minutes before the break to level when Mackail-Smith rifled in smartly on the turn from 15 yards after a clever flick from Adam Clayton. Mackail-Smith put Posh in front after 71 minutes with a header from point-blank range.
Walsall refused to roll over and were still in the game until a controversial third goal put paid to their hopes of a precious point. Mendez-Laing looked offside as he was allowed to race in on goal before rounding keeper Jonny Brain and slotting into the empty net. Saddlers assistant boss Martin O'Connor was sent from the stands for his protests.
Bennett headed in a Grant McCann corner in injury time to add gloss to the scoreline.