Zaha starts in a three-pronged attack alongside Jordan Ayew and Odsonne Edouard, with Christian Benteke and Michael Olise dropping to the substitutes bench.
Cheikhou Kouyate replaces Luka Milivojevic in midfield, with Conor Gallagher and James McArthur completing the trio.
Vicente Guaita is protected by a familiar back-four of Joel Ward, Marc Guehi, Joachim Andersen and Tyrick Mitchell.
Alongside Olise and Benteke, Jeffrey Schlupp and Jean-Philippe Mateta are attacking options among the replacements.
After defeat on penalties to West Ham United during the week, Manchester City return to a more familiar starting lineup, making just one change from their last league outing at Brighton & Hove Albion.
Kevin De Bruyne returns to the side in place of Ilkay Gundogan, completing a fearsome attacking unit: Bernardo Silva and Rodri are alongside in midfield, with Phil Foden, Jack Grealish and Gabriel Jesus up front.
Palace: Guaita (GK), Ward, Guehi, Andersen, Mitchell, Kouyate, Gallagher, McArthur, Zaha, Edouard, Ayew.
Subs: Butland (GK), Milivojevic, Tomkins, Olise, Mateta, Schlupp, Clyne, Benteke, Kelly.
Man City: Ederson (GK), Walker, Dias, Jesus, Grealish, Laporte, Rodri, De Bruyne, Silva, Cancelo, Foden.
Subs: Steffen (GK), Stones, Ake, Sterling, Gundogan, Zinchenko, Fernandinho, Mahrez, Palmer.