The Saddlers had a positive first half, on the whole, defending well against Town’s opportunities and going close themselves, with Jake Scrimshaw’s sensational half-volley smashing the crossbar.
But two goals in the opening 12 minutes of the second half put Cheltenham in control. First Dan Scarr turned into his own net before Matty Blair neatly tucked his effort home.
Ben Tozer then put the icing on the cake for the hosts with a late third goal as Walsall were condemned to a 3-0 loss.
Darrell Clarke made three changes to the side that lost to Southend at the weekend, starting in a 4-4-2 formation.
Caolan Lavery and Wes McDonald dropped to the bench, while Alfie Bates was suspended following his red card last week.
Danny Guthrie, Emmanuel Osadebe and Scrimshaw came into the starting XI, with the latter making his first league start for the club.
Captain James Clarke returned from injury and made the bench.
Michael Duff made one change to his Cheltenham side, playing a 3-5-2 formation.
Young West Brom loanee Josh Griffiths, who was recently on England Under-20’s duty, returned in goal as Scott Flinders dropped to the bench.
The first chance of the game fell to Elijah Adebayo. After the Saddlers won the ball in midfield, Rory Holden broke forward and fed the striker but his effort in the box was blocked by Tozer, who slid in.
After 10 minutes Walsall should have earned a penalty. From this writer’s point of view Liam Kinsella was seemingly tripped in the box but referee Sam Purkiss instead gave a free-kick the other way and booked Kinsella for diving.
Playing their wing-backs system, the hosts began to mount some pressure and whip balls into the box, but Walsall stood their ground.
Cheltenham almost took the lead when Andy Williams met a Chris Hussey cross but his header hit the post.
The Saddlers had chances themselves from set pieces with Scarr a threat.
With the game closing in on half-time, Scrimshaw almost scored a peach of a goal when his half-volley from the end of the box smashed the underside of the bar.
After a half of football where either side could have taken the lead, they went into the break drawing 0-0.
Only five minutes into the second half and Cheltenham took the lead. A long throw from Tozer hit Scarr and fell into an empty net as goalkeeper Liam Roberts had left his line to collect the ball.
It went from bad to worse minutes later when the hosts doubled their lead. Since conceding the first Walsall were panicking on the ball and allowing Chelteham to play through them. Following a nice passing move Williams had a shot blocked and the ball fell nicely for Blair who finished emphatically.
Clarke, McDonald and Lavery were all introduced after 70 minutes as Walsall searched for a way back into the game.
Similar to Kinsella in the first half, Lavery was alleged to have dived in the box and was shown a yellow card.
Tozer flicked home a third goal in the 89th minute to secure the points and hand Walsall a fourth consecutive loss.
Walsall: Roberts, Norman, Scarr, Jules, Cockerill-Mollett (Clarke, 70), Holden, Guthrie (McDonald, 70), Kinsella, Osadebe (Nolan, 87), Adebayo (Lavery, 70), Scrimshaw (Sinclair, 87).
Subs not used: Rose, White.
Cheltenham: Griffiths, Raglan, Tozer, Boyle, Blair, Hussey, Thomas, Chapman, Sercombe, Williams (Reid, 92), May (Lloyd, 86)
Subs not used: Flinders, Freestone, Sang, Clements, Azaz.