It was the fourth time this season the Saddlers had failed to win after going two ahead and they have now gone 16 games without a win in all competitions.
Walsall were ahead in the 13th minute when Febian Brandy squared for Jamie Paterson to strike low into the net for his fourth of the campaign.
Yeovil fought back and had a goal disallowed in the 21st minute when James McAllister's free-kick flew over Aaron McCarey but the home goalkeeper was fouled by Don Burn.
Walsall looked safe when Will Grigg drove in a pass from Brandy with 18 minutes to play but Glovers' substitute Reuben Reid pulled one back from Foley's cross in the 78th minute, encouraging the visitors to pour forward in search of a point.
It arrived in the 90th minute when McAllister launched a free-kick into the box and when it was not cleared Foley smashed a low drive into the back of the net.