League One: Walsall 2 Peterborough 0
Darren Ferguson's men went into the game knowing victory would take them to within three points of second-placed Leyton Orient in League One.
Yet they were well beaten as Walsall eased to only their third league win at the Banks's Stadium this season.
Peterborough, who have now lost three in a row, came closest to opening the scoring in the early stages, defender Craig Alcock's shot cannoning off the crossbar from 30 yards out.
The visitors were left to rue their misfortune as Walsall sliced through their defence with a fine team move, which ended with Romaine Sawyers playing in Milan Lalkovic, who slotted the ball past Bobby Olejnik.
Walsall continued to create chances and grabbed a second goal 24 minutes into the second half when Sawyers crashed a shot into the roof of the net from close range after great work down the left from Chelsea loanee Lalkovic.
Peterborough's miserable night was compounded 13 minutes from time as defender Shaun Brisley was sent off for a second bookable offence.
Walsall move up to seventh in the table, although they missed a golden chance to add a third goal when a late penalty from substitute Ashley Hemmings was saved by Olejnik.