The Addicks posed the first threat in the third minute when Paul Benson moved onto a cross from Nathan Eccleston and planted a header against the foot of a post. But Walsall took over after that and Charlton keeper Rob Elliot pulled of fine saves from Jon Macken and Jordan Cook to keep the visitors in the game.
The Saddlers kept pushing forward and eventually took the lead in the 34th minute, 19-year-old Will Grigg driving in a low shot for his fourth goal of the season when Macken chested the ball down from Richard Taundry's cross.
Walsall continued to pile on the pressure in the second half and a second almost came when Cook rattled the crossbar with a tremendous rising drive on the hour mark.
It was all over, however, 12 minutes from the end, Cook and Macken combined and when Macken's shot rebounded to Julian Gray, the winger drilled home a low shot for his ninth of the season.
It leaves Walsall still one point clear of Dagenham & Redbridge who occupy the final relegation berth heading into the last weekend.