Walsall slipped to a second successive defeat as goals from Myles Hippolyte and Alex Gilliead saw Scunthorpe United claim all three points.
Hippolyte’s goal was cancelled out by Wes McDonald’s effort in the second half as the Saddlers fought back.
Josh Gordon had a penalty saved before Gilliead scored what proved to be the winner as the Saddlers were left to rue missed opportunities.
Darrell Clarke made three changes to the team that started against Salford City on Boxing Day.
George Nurse made his return from injury as he came in for Hayden White.
Elsewhere, Jake Scrimshaw and Danny Guthrie came in for Emmanuel Osadebe and Alfie Bates.
Scunthorpe had the first chance of the game after five minutes as Myles Hippolyte’s effort from close range drew a brilliant reaction save out of Jack Rose.
Rose was again called into action six minutes later when he stopped Jake Taylor’s low shot.
The Saddlers keeper was then caught late by Ryan Loft after coming off his line to collect the ball. After receiving some treatment, he was able to continue.
The visitors took the lead on 27 minutes when Mason O’Malley’s free-kick found its way to Hippolyte who swept the ball into the net to give them the lead.
Walsall looked to respond after falling behind and had a couple of half-chances. Dan Scarr’s header was caught by Mark Howard before Elijah Adebayo saw his shot blocked by a brilliant last ditch challenge by Jordan Clarke.
The Saddlers’ best chance of the half came after 41 minutes when Wes McDonald picked up the ball in the middle of the pitch, drove forward and unleashed a low drive from outside the box but Howard denied him with a good save low to his right.
Walsall made a positive start to the second half. Guthrie whipped in a free-kick from the left that only just curled wide of the target before Josh Gordon tried his luck with a dipping shot from distance but it was straight at Howard.
The Saddlers drew level on 55 minutes when Guthrie sprayed the ball out to Cameron Norman on the right who skipped into the area and clipped a beautiful ball to the far post that was met by McDonald who turned it home.
Clarke’s men were presented with a glorious opportunity to take the lead on the hour mark when they were awarded a penalty after Adebayo was brought down by Jordan Clarke.
Gordon stepped up but his low strike to the right was save by Howard.
The visitors still posed a threat themselves and Rose had to be alert to deny Devarn Green to push his shot away.
Scunthorpe re-took the lead on 69 minutes when Gilliead’s fine low strike found the bottom corner.
Rose had to be withdrawn at that stage as he was still feeling the effects of the earlier challenge from Loft and was replaced by Roberts.
The Saddlers pressed for a leveller and Clarke brought on more fresh legs as Emmanuel Osadebe, Mat Sadler and Caolan Lavery were introduced in place of Scrimshaw, Nurse and Gordon.
Walsall pushed but couldn’t find an equaliser and were left frustrated.
Rose (Roberts 69’); Norman, Clarke, Scarr, Nurse (Sadler 74’); Gordon (Lavery 83’), Guthrie, Kinsella, McDonald; Adebayo, Scrimshaw (Osadebe 74’)
Subs: Roberts, Sadler, Sinclair, Bates, Lavery, Osadebe, White