Nuno Espirito Santo's side had Japhet Tanganga sent off for two bookings in quick succession in the second half at Selhurst Park.
Zaha ensured Palace took advantage of their numerical superiority when he netted from the spot after Ben Davies's handball.
Edouard came off the bench to wrap up the points with two goals on his debut following his £15 million moves from Celtic in August.
Tottenham had started a league campaign with three wins and three clean sheets for the first time in their history.
But the north Londoners were unable to extend that run as they paid the price for a lacklustre display.
It was a sweet moment for Patrick Vieira as the former Arsenal midfielder secured his first win as Palace boss at the expense of his old club's arch-rivals.
Vieira, who lost just two of 18 league games against Tottenham as a player, had failed to win any of his first four matches in all competitions since succeeding Roy Hodgson at Palace.
Tottenham were well below their best without Son Heung-min after South Korean forward suffered a calf injury on international duty.
Nuno's men suffered another injury blow when England defender Eric Dier limped off early on.
Dier was clattered by Palace striker Jordan Ayew when the pair fought to reach a weak roll-out by Tottenham keeper Hugo Lloris.