On-loan Chelsea forward Milan Lalkovic put the Saddlers ahead midway through the first half with an intelligent run and smart finish and Romaine Sawyers doubled the home side's advantage with an equally impressive strike in the second half.
To make matters worse for Peterborough, who have now gone four games without a league win, they had Shaun Brisley sent off with 14 minutes to go for his second bookable offence - a lunge on Lalkovic.
Richard O'Donnell tipped Craig Alcock's thumping right-foot effort on to the crossbar with just seven minutes on the clock as the visitors threatened early on.
But it was the hosts who soon took over and opened the scoring 20 minutes later through a fine finish from Lalkovic. Sawyers' neat ball put Lalkovic away in the inside left channel and he got his body across Mark Little before advancing and slotting neatly past Robert Olejnik and into the far corner.
Ten minutes after the restart things could have got worse for Peterborough after Grant McCann's awful back pass was collected by Craig Westcarr, but he was superbly denied by Olejnik when one-on-one.
Britt Assombalonga threatened to level matters midway through the second half but his tame shot went straight to O'Donnell.
And moments later Sawyers made it 2-0 after collecting a square pass from Lalkovic and drifting past Michael Bostwick before firing expertly past Olejnik.
And Walsall, who moved into seventh place, could even afford to miss a last-minute penalty after Ashley Hemmings' low spot-kick was stopped by the impressive Olejnik.