Despite having a relatively comfortable evening in the opening stages, the Saddlers fell behind after 27 minutes when Myles Hippolyte pounced on a loose ball in the box to smash home.
The hosts came out fighting in the second half, however, and levelled after 10 minutes. Wes McDonald arrived at the back post to meet a Cameron Norman cross and finished well.
After an hour Walsall were handed a chance to take the lead from the penalty spot. Josh Gordon stepped up but had his effort saved.
Just seven minutes after that miss, and with Walsall suffering with goalkeeper injury issues, Scunthorpe took the lead again. Alex Gilliead drilled an effort into the bottom corner from the edge of the box.
After a long six minutes of added time Walsall were unable to find a second goal and fell to a second consecutive League Two loss.
Darrell Clarke made three changes to the side that lost on Boxing Day, starting in a 4-4-2 formation.
Danny Guthrie replaced Alfie Bates in midfield, while striker Jake Scrimshaw came in for Emmanuel Osadebe, hence the change in formation.
George Nurse made his return from a tendon injury in his first appearance since October 31 as Hayden White was replaced. Bates, Osadebe and White all made the bench but Jack Nolan missed out.
Neil Cox made five changes to the side that lost 3-2 to Mansfield last time out.
Scunthorpe started the game in a 4-4-1-1 formation.
Jack Rose made a brilliant reaction save in the first five minutes after a Scunthorpe head met a cross and flicked it towards goal.
The hosts had a couple early flashes of goal too with headers from both Dan Scarr and Scrimshaw just wide of the post. Norman was finding himself with a lot of space on the right and he delivered a handful of superb crosses.
A Jake Taylor effort was held well by Rose after the midfielder cut it back across goal from the right.
Elijah Adebayo had been effective with his flick-on headers and one almost resulted in a goal as he released McDonald. The winger cut inside and delivered a wonderful low cross which just evaded his team-mates at the near post.
Neither manager was pleased with referee Trevor Kettle with an inconsistency in the free-kicks given during the half and they made their feelings known from the touchline.
Despite Walsall being fairly comfortable, the visitors took the lead after 27 minutes. Mason O’Malley lofted a free-kick into the box and a Saddlers clearance deflected into the path of Hippolyte who finished emphatically from close-range.
Scarr again came close with a header, from a Nurse cross, before a Ryan Loft header flashed past the post for the Iron.
Jordan Clarke produced a goal-saving tackle when he got in the way of Adebayo’s effort inside the box. The striker did superbly well to chest the ball down and fashion a chance.
McDonald had a strong effort palmed away from 25 yards after the winger was given the ball due to a Scunthorpe mistake.
Devarn Green turned on the gas when he raced away from Nurse down the right and delivered a low cross for the oncoming Hippolyte. At full stretch he was just short of the ball.
A frustrating half of football for Walsall came to an end after four added minutes with Scunthorpe leading 1-0.
A strong start to the second half saw the Saddlers put pressure on the Iron backline from the first whistle. Adebayo, again, was holding the ball up well and bringing team-mates into play.
Some exceptionally poor officiating saw the referee and linesman fail to stop play for a Nurse head injury and allow Scunthorpe to attack. Eventually they do stop the play, as Nurse was spitting blood from his mouth.
After 55 minutes Walsall were level. A superb cross-field ball from Guthrie found Norman on the right. The full-back cut inside and delivered a wonderful cross to the back post for McDonald to tap home.
On the hour mark Walsall had a golden chance to take the lead when Clarke bundled down Adebayo in the box and the referee pointed to the spot. Gordon stepped up to take the penalty but had his effort saved by Mark Howard.
Rose sprung into action again to deny a powerful Green effort at the near post.
But only minutes later Scunthorpe were ahead again. Gilliead picked the ball up on the edge of the box and fired a low effort into the bottom corner.
Rose, who had been limping throughout the half after a challenge by Loft in the first half, was then substituted and replaced by Liam Roberts.
A Scarr header from a corner was then flicked on by Scrimshaw but held by Howard.
Adebayo was again appealing for a penalty when he seemed to be pulled back by Clarke, but this time the referee was unmoved.
Walsall persevered in the closing stages of the game, as they tried to find an equaliser, but found the Iron defence a hard nut to crack.
Despite playing six minutes of added time the Saddlers failed to break them down, even with goalkeeper Roberts going forward for attacking set pieces. The result meant Walsall suffered their second loss in as many matches.
Walsall: Rose (Roberts, 69), Norman, Scarr, Clarke, Nurse (Sadler, 74), Gordon (Lavery, 83), Guthrie, Kinsella, McDonald, Scrimshaw (Osadebe, 74), Adebayo.
Subs not used: White, Sinclair, Bates.
Scunthorpe: Howard, Clarke, Bedeau, Cordner, O’Malley, Gilliead, Beestin, Taylor (Hornshaw, 93), Hippolyte, Green (McAtee, 80), Loft (Jarvis, 45, Eisa, 59).
Subs not used: Watson, Spence, Rowe.