Striker George Bowerman, 21, was the star with two goals, one from the penalty spot, as the Saddlers climbed above North End in the League One table.
Preston took the lead in the 10th minute when Walsall lost possession in midfield and were opened up by a swift counter-attack. Nicky Wroe crossed to the unmarked Joel Byrom who headed past debutant goalkeeper Karl Darlow, on loan from Nottingham Forest.
After 18 minutes Darlow pulled off a brilliant save, tipping over a fierce header from Stuart Beavon who looked a certain scorer from close range.
Walsall then took control. Will Grigg had a shot blocked and Florent Cuvelier saw his deflected free-kick superbly saved by Steve Simonsen before the hosts equalised seven minutes before half-time when Grigg's knock back was chipped over the Preston keeper by the hard-working James Baxendale.
The Saddlers dominated the second half. Bowerman put them ahead with a 55th minute penalty after he had been tripped by Shane Cansdell-Sherriff, and he drove in the third with a cracking left-foot shot to clinch the points after 58 minutes.