Goals from Alex Rodman and Abu Ogogo proved the difference as the Saddlers fell to a derby defeat at promotion-chasing Shrewsbury.
Salop started strongly and broke the deadlock inside six minutes when Jon Nolan’s low cut-back was neatly tucked home by Alex Rodman at the near post.
The visitors responded with Julien Ngoy checking back onto his right foot and sending in a cross towards Kieron Morris, whose looping header was tipped over by Town keeper Dean Henderson.
It should have been 2-0 on nine minutes as Shaun Whalley’s delightful cross picked out Carlton Morris but the forward volleyed against the post when completely unmarked six yards out.
The Shrews continued to pour forward, Jon Nolan lashing a sweetly-struck 20-yard drive wide after Shaun Whalley’s curling free-kick was pushed out by Liam Roberts.
Whalley’s set-piece delivery was causing problems, with Aristote Nolan volleying over at the back post from a free-kick.
Walsall gradually gained a foothold and began to create chances, Jon Guthrie heading Erhun Oztumer’s dinked cross straight at Henderson.
Nicky Devlin then capitalised on a fortunate ricochet before arrowing a low drive from an acute angle against the base of the post.
There was controversy on 28 minutes as Erhun Oztumer ran through on goal and was brought down by Lee Hendrie – with the Saddlers appealing for a red card.
Only a yellow was brandished and Oztumer curled the resulting free-kick wide of the near post.
The Saddlers began the second half with real attacking intent, Morris drilling a left-footed shot wide within the opening 60 seconds.
On 56 minutes, Amadou Bakayoko charged purposefully from deep into the penalty area before firing wildly wide.
Shrewsbury had the ball in the net from a Whalley corner just past the hour mark but the goal was disallowed for a foul on Liam Roberts.
Walsall were inches away from finding an equaliser with eight minutes remaining as Luke Leahy headed Adam Chambers’ deep cross against the angle of post and bar.
But Town made the points safe with two minutes left, Rodman delivering a low right-wing cross for Shrews skipper Abu Ogogo to fire into the roof of the net from close range.
Team: L Roberts, Devlin, K Roberts, Guthrie, Leahy, Chambers, Dobson, Morris (Cuvelier 71’), Ngoy (Shaibu 86’), Oztumer, Bakayoko.
Subs not used: Gillespie, Kinsella, Fitzwater, Flanagan, Kouhyar.
Attendance: 7,633 (970 Saddlers supporters).