Kieron Morris’ deflected first-half strike helped the Saddlers make it three straight league wins with victory over high-flying Scunthorpe.
Erhun Oztumer saw a second-half penalty saved by keeper Matt Gilks but Walsall deservedly held on to climb up to 11th in League One.
The Saddlers took the lead on 13 minutes as Kieron Morris’ right-footed drive from 20 yards took a wicked deflection off a visiting defender and looped past a motionless Matt Gilks.
Walsall could have added a second on 25 minutes when Erhun Oztumer’s wonderful incisive pass released Zeli Ismail but his low cross towards Flo Cuvelier was well cut out by Rory McArdle.
Cuvelier, back in the side after an injury lay-off, then tried his luck from the corner of the box but his curling effort whistled narrowly over the bar.
Subdued Scunthorpe’s first attempt on target came two minutes before the break, Hakeeb Adelakun with a first-time strike from long range which was easily held by Mark Gillespie.
Only the reactions of Gilks thwarted the hosts in first-half injury-time, the visiting keeper scrambling across his line to palm away Oztumer’s well-struck 25-yard effort.
Jon Whitney’s men started the second half on the front foot, with Oztumer seeing a dipping 25-yarder held by Gilks.
The in-form playmaker – with three goals in his previous three games – was presented with a golden opportunity to make it 2-0 just before the hour mark.
Luke Leahy traded passes with Oztumer before brought down by McArdle in the area, but Oztumer’s subsequent penalty was kept out well by Gilks low down to his left.
After surviving that let-off, the Iron responded with Josh Morris drilling a low strike wide of the near post.
United had a good chance on 70 minutes, Kevin van Veen delivering a dangerous cross towards Simon Church, unmarked at the near post, but the substitute couldn’t turn the ball goalwards.
Scunthorpe piled on the pressure late on and very nearly levelled in added time when Clayton Lewis’ rocket was just about kept out by Gillespie on the line.
Team: Gillespie, Kinsella, Wilson, Guthrie, Leahy, Chambers, Cuvelier (Flanagan 74’), Oztumer, Ismail (Devlin 83’), Morris, Bakayoko (Agyei 85’).
Subs not used: Ganley, Jackson, K Roberts, Kouhyar.
Attendance: 3,865 (279 Scunthorpe supporters).