Palace took the lead against the run of play at Craven Cottage with a first Premier League goal from Jairo Riedewald, who finished Zaha’s clever pass on eight minutes.
After twice going close for Fulham, Ademola Lookman struck a post on 26 minutes and Aleksandar Mitrovic couldn’t convert the rebound.
Palace doubled their lead on 64 minutes when Zaha slid in Michy Batshuayi’s cross at the far post.
Fulham's hopes of a late recovery were hit by a red card for substitute Aboubakar Kamara for a bad foul on 88 minutes after a VAR review.
Deep into stoppage time, Tom Cairney’s long-range strike gave Fulham a first home goal of the season.
Palace rise to fifth with 10 points, while Fulham remain bottom on just one point.
Budweiser King of the Match: Wilfried Zaha (CRY)
Fulham: 2 Nov v West Brom (H)
Crystal Palace: 30 Oct v Wolves (A)