The Saddlers secured their first win in nine games to keep their League One survival hopes alive thanks to a first-half strike from top scorer Andy Cook, an own goal from Daniel Lafferty and a second-half poacher's finish from Josh Gordon.
In the opening 45 minutes, clear-cut chances were limited for either side. After four minutes, Chris Dunn was the first keeper to be called into action to deny Marcus Maddison’s dipping long-range effort.
As 10 minutes passed, Gordon tried his luck from just outside the penalty area but his bobbling effort went just wide of the left-hand post.
With over a third of the half gone, the Saddlers created their best opening as George Dobson fed Luke Leahy on the left, who in turn put the ball just in front of Gordon but his effort was again inches wide of the post.
In the 37th minute, the Saddlers found themselves in a two on one situation but Andy Cook’s pass was an inch too far ahead of the onrushing Joe Edwards, who would have had an easy tap-in.
Right on the stroke of half-time, Martin O’Connor’s side took the lead as Scott Laird curled a delightful cross to the back post where Cook was on hand to nod the ball into the bottom corner of Adam Chapman’s goal.
Into the second half and the Saddlers’ bright start was rewarded just before the hour mark. Gordon won the ball back on the edge of the area before bursting into the box and playing the ball across, with Posh defender Lafferty diverting the ball into the back of his own net.
Just after the hour mark, Nicky Devlin nearly added a third to the scoreline as he was picked out on the right by the excellent Dobson but the full-back’s cheeky dink landed on top of the net.
With a little over 15 minutes left, the Saddlers added their third goal of the afternoon. After some fantastic tenacious work from Cook down the right, the powerful frontman squared the ball to his strike partner Gordon, who was able to poke the ball home.