The 25-year-old scored in Palace’s 2-0 victory over Fulham on Saturday, but has been linked with a move away from the club this summer.
“I’m very pleased,” said Zaha. “Obviously, I wanted to get it over and done with, so I can just focus on the season. I’m buzzing that we managed to get it sorted.”
“Wilf grew up a stone’s throw from Selhurst Park from the age of four,” Palace chairman Steve Parish said.
“This agreement is yet another example of his lifelong commitment to the club, and our commitment to him.
“This is an amazing day for everyone here at Palace, our support-ers and of course Wilf – and is richly deserved.”