Posh could have scored six - they hit the woodwork three times - and the scoreline was not a fair reflection of their dominance in the League One clash.
It took the visitors only 64 seconds to race into the lead, Craig Mackail-Smith beating Chris Palmer on the left and crossing for Shaun Batt to hit a fierce drive which young Walsall goalkeeper Rene Gilmartin saved brilliantly, but Batt was first to the rebound to head into the empty net.
The killer second goal arrived two minutes from half-time when skipper Russell Martin hit a square ball to Chris Whelpdale, who was given too much time and he struck a low left-foot drive just inside the right-hand post.
Walsall continued to battle, but escaped again when George Boyd hit the post in the 67th minute. Although Anthony Gerrard headed against the crossbar for Walsall, Peterborough continued to dominate.
The visitors should have had further goals in the dying minutes when Mackail-Smith struck a post then shot wide before Troy Deeney headed a consolation goal for Walsall in stoppage time.