The striker, back from suspension and able to face the Hammers after appealing against an additional ban, struck 14 minutes from time to rescue a share of the spoils.
Mark Noble had fired West Ham into a first-half lead from the penalty spot, but Palace were worth their point and would have equalised earlier but for an incredible miss by James McArthur.
— Crystal Palace F.C. (@CPFC) February 9, 2019
Instead it was Zaha, sent off at Southampton last week for sarcastically clapping the referee, who milked the applause with his late leveller.
The Hammers had the better of the first half and early on Michail Antonio's clever reverse pass fed the overlapping Ryan Fredericks, but his first-time shot was too close to Palace keeper Vicente Guaita.
Moments later Zaha found McArthur in the West Ham area only for Lukasz Fabianski to make a fine block.
West Ham took the a 27th-minute lead when Declan Rice lofted the ball into the box. Guaita came out and clattered into Antonio, leaving referee Craig Pawson with a simple decision.
The reliable Noble stepped up to take the spot-kick, sending Guaita the wrong way for his first goal of the season.
The Hammers captain's 21st successful Premier League penalty was also his first since the home draw with Palace last season.
Palace almost forced an equaliser before half-time but Fabianski pulled off another fine save to deny Christian Benteke and Zaha blazed a good chance over the crossbar.
McArthur somehow missed a golden opportunity to level shortly after the interval when again he found himself clean through.
The midfielder bore down on goal and, with Fabianski on his backside, aimed to lift the ball over the keeper only to clip it wide from all of four yards out.
Patrick Van Aanholt fired narrowly over from long range before squaring for substitute Michy Batshuayi, who slid his shot wide with the goal at his mercy.
But the equaliser arrived after 76 minutes when Zaha ran at the West Ham defence, collected a return ball from McArthur and saw his angled drive loop off the boot of Issa Diop and over Fabianski.
Zaha could even have won it for Palace late on but Fabianski beat away his curling shot as the Hammers, who had looked comfortable for the majority of the match, found themselves clinging on for a point .