Zaha lit up a poor Premier League encounter at The Hawthorns when he opened the scoring after a neat piece of skill after 55 minutes.
Townsend wrapped up victory, Palace's second in successive games, with a superb solo effort six minutes from time.
The result lifted Palace out of the bottom three and indicated Sam Allardyce's work is now starting to bear fruit after a frustrating start with the Eagles.
London football! Relive the action on Standard Sport's blog.
Can’t see the blog? Click here to view our desktop site.
WBA XI: Foster, Dawson, McAuley, Evans, Nyom, Livermore, Brunt, Fletcher, Morrison, Chadli, Rondon
Subs: Olsson, Robson-Kanu, Yacob, Marc Wilson, Myhill, McClean, Leko
Palace XI: Hennessey, Ward, Tomkins, Sakho, Van Aanholt, Cabaye, Milivojevic, Zaha, Puncheon, Townsend, Benteke
Subs: Speroni, Dann, Campbell, McArthur, Sako, Delaney, Schlupp
Referee: Mike Jones
WHAT THEY SAID
Sam Allardyce: "Playing 50 passes in midfield and losing 2-0 is not the way to go. The way you play is by playing to the team's strengths.
"West Brom have had a quality season - particularly at home. It shows what you can do when you have time."
Tony Pulis: "When you look at the Palace squad and the depth and the talent they've got, it's going to be a real tough game.
"If supporters turn up and think we're just going to roll Palace over they're going to get a real shock. We've got to be on it and make sure everybody's up for it."