The wideman, back in the Eagles side after missing the defeat to Southampton a fortnight ago, netted the only goal of an entertaining contest.
Town had plenty of chances to equalise but the post, some dogged defending and wayward finishing proved to be the undoing of David Wagner’s men.
Aaron Mooy struck the upright with a volley in a second half that saw the hosts also go close through Philip Billing and Florent Hadergjonaj.
Try as they might, however, that first elusive goal of the season on home soil would not come to ensure Palace headed home with all three points.
Zaha’s big moment came seven minutes before half-time. Collecting the ball out wide on the right, Zaha made light work of getting past Florent Hadergjonaj and Elias Kachunga before drilling a shot beyond Jonas Lossl.
At times, tempers boiled over - the inconsistency of referee Lee Mason not helping matters. The official handed out three cards but it could easily have been more, James McArthur fortunate to still be on the field after cynically fouling Rajiv Van La Parra after already having been booked for clattering Florent Hadergjonaj.
Town, however, could only blame themselves for not getting something out of the game.
Two sublime deliveries from Chris Lowe deserved to bring the breakthrough but, first, Steve Mounie headed over and then the German’s free-kick evaded both Mounie and Mathias ‘Zanka’ Jorgensen with the goal gaping.
Lowe then created the second half opening that saw Mooy volley against the post as Town’s wretched scoring run on home soil continued.