Former Manchester United striker Brandy opened the scoring for the Saddlers in the 18th minute before Downing doubled their advantage just before half-time.
James Baxendale put the result beyond doubt after 56 minutes, with Bailey Wright's late header unable to prevent Preston's winless run at home in the league extending to nine.
The visitors went close after just five minutes with North End goalkeeper Thorsten Stuckmann denying both Jamie Paterson and Andy Butler with fingertip saves.
Preston striker Joe Garner, making his home debut, was denied a 16th-minute penalty by referee Carl Boyeson despite being upended running on to Stuart Beavon's low cross.
Walsall took full advantage moments later when Brandy turned in Will Grigg's cross before Downing added a second in the 38th minute with a header from an Adam Chambers delivery.
Baxendale completed the win after the break when Luke Foster's loose touch allowed Grigg to pick him out, before Wright's stoppage-time consolation for Preston.