It was Walsall who had the better of the first half and the struggling visitors defied their lowly position at the bottom of the table by creating what few opportunities arose in the opening 45 minutes.
Alex Nicholls saw an effort go over the bar, Julian Gray broke into the box before shooting off target and Richard Taundry shot into the side-netting.
Walsall should have taken the lead in the 58th minute when Will Grigg headed over from six yards after connecting with Gray’s cross.
But they finally made the breakthrough 11 minutes later with a stunning low drive from 20 yards from Matt Richards, which flew past Rob Elliot and into the net.
Nicholls almost added a second for the visitors with a 25-yard volley that went just wide of the post five minutes later and he should have wrapped it up in the 89th minute after breaking clean through, only to be denied by Elliot.