Roy Hodgson’s men were slow to get going in their penultimate warm-up game as the visitors took the lead through Aaron Leya Iseka who converted a rebound in the 10th minute.
The north London outfit soon responded with a header from Christian Benteke before Jeffrey Schlupp put them in front for the first time in the tie.
Before the interval, Luka Milivojevic converted from the penalty spot to make it 3-1 after Andros Townsend was fouled in the visitors’ area. Zaha then grabbed the final goal in the 81st minute.
Before the start of their 2018-19 English Premier League campaign, Palace will slug it out with Kingstonian at King George’s Field on August 7.