Walsall scored twice in as many minutes to keep alive their play-off hopes.
Tommy Mooney struck from the penalty spot after keeper Shane Higgs had brought down Lee Holmes.
Anthony Gerrard then scored a header after he had been left unmarked from a Holmes corner but Paul Connor struck from six yards 16 minutes from time.
Cheltenham pushed for an equaliser but Michael D'Agostino volleyed narrowly and then, in injury time, just failed to convert a cross from David Bird.
Cheltenham: Higgs, Gallinagh (Connolly 61), Keogh, Duff, Jeremy Gill, Lindegaard, Bird, Armstrong (D Agostino 72), Scott Brown (Reid 72), Gillespie, Connor. Subs Not Used: Scott P Brown, Ben Gill.
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.
Bookmark with:
What are these?