Goals from Milan Lalkovic and Romaine Sawyers saw the Saddlers bounce back from successive 1-0 league losses and inflict a third straight league defeat on Posh, who had defender Shaun Brisley sent off for a second bookable offence in the 77th minute.
Peterborough went close in the seventh minute when Craig Alcock hit a rising shot which goalkeeper Richard O'Donnell just managed to tip onto the crossbar.
But Walsall, playing some excellent football, took the lead after 26 minutes when Sawyers opened up the Posh defence and Lalkovic cut in from the left to score his second goal for the club since arriving on loan from Chelsea with a low drive from a tight angle.
Man-of-the-match Lalkovic then returned the favour for Sawyers after 69 minutes, the Slovakia Under-21 international setting him up for a rising shot that flew past Olejnik and into the roof of the net.
Craig Westcarr and Sawyers could have made the scoreline more flattering for the hosts but both failed to score more when clean through one-on-one with the goalkeeper.
Hemmings too was denied by Olejnik from the penalty spot after Gaby Zakuani had fouled Paul Downing.
- Sports & Recreation
- Romaine Sawyers
- Shaun Brisley
- Craig Alcock