The Ivory Coast international began his career at Palace and made more than 450 appearances for the club, netting 90 goals.
Galatasaray said in a statement on the club website that Zaha would be paid a signing fee of 2.33 million euros (£2m) and would earn 4.35 million euros (£3.75m) a season.
He came through the Palace academy and spent most of his career at the London club, apart from a two-year spell at Manchester United.
Lazio, Fenerbahce and Al-Nassr were reported to have been interested in signing him.
Galatasaray won a record 23rd league title in May, their first since the 2018/19 season, and will enter the Champions League in the second qualifying round.
Follow the latest transfer news and rumours with Flashscore.