Match ends, Crystal Palace 0, Manchester City 3.
Leroy Sane scored for the third successive game to help Manchester City reach the FA Cup fifth round as Crystal Palace lost to Premier League opposition for the fifth time in six games under Sam Allardyce.
City went in front when Gabriel Jesus marked his first start by setting up Raheem Sterling to score.
Sane doubled their lead after a wonderful David Silva pass.
Yaya Toure completed the victory with an exquisite finish from a free-kick.
Captain Vincent Kompany played the full 90 minutes on his return from a two-month injury lay-off.
Pep smiling again on positive day
City boss Pep Guardiola joined his players on the pitch at the final whistle to thank the club's 3,662 travelling supporters.
The Spaniard has not had an awful lot to smile about lately, his side winning just two of their past five games, and was even pictured looking glum during a hailstorm at Selhurst Park.
By the end, Guardiola was joking on the pitch with Toure after City made easy work of Palace on a day of several positives.
Jesus' pass for the opening goal was as lovely to watch as Sterling's clinical finish, Silva's ball to Sane was even better, and Toure's set-piece goal was stunning.
On top of that, Kompany returned nine weeks after suffering knee-ligament damage and concussion at the same ground.
Problems mount for Allardyce
This time they limped out of the competition in disappointing fashion in front of their own fans, leaving them to focus on Premier League survival.
With a league match at Bournemouth to come on Tuesday, Allardyce made six changes. Few impressed, and recent signing Jeffrey Schlupp went off with a hamstring injury.
There were, though, glimpses of encouragement.
City's second-choice keeper Willy Caballero had to save well to deny James Tomkins when the tie was goalless and, with Palace trailing 1-0, substitute Loic Remy fired wastefully over.
Allardyce will now look to push through the signing of Sunderland defender Patrick van Aanholt before the transfer window closes at 23:00 GMT on Tuesday.
Palace have conceded in all six games against top-flight opposition since Allardyce took charge last month and that must be addressed if they are to stay up.
'Silva's pass amazing'
Crystal Palace boss Sam Allardyce: "We've lost that habit of winning. Our game is OK in parts. We look quite good at times and then a mistake creeps in and the opposition punish us.
"Loic's was the main chance. If that goes in the back of the net it may have been different. I've got more to worry about with the goals we're conceding rather than moan about referees."
Manchester City boss Pep Guardiola: "While it's good to have a clean sheet because of the goals we've conceded lately, it is also important to score goals, which we did.
"We can play better but I'm happy and David was amazing the way he kept waiting and waiting for the right moment before playing in Leroy.
"We are also happy for Vincent. He's had a long time away and he played 90 minutes with no injuries.
"Now he can go forward with confidence and we have another player for the Premier League, FA Cup and Champions League which is very important because the games will come thick and fast now."
- 34KellyBooked at 54mins
- 31SchluppSubstituted forFryersat 76'minutes
- 16LedleyBooked at 90mins
- 22MutchBooked at 30minsSubstituted forMcArthurat 65'minutes
- 17BentekeSubstituted forRemyat 45'minutes
- 3SagnaBooked at 57mins
- 42Y TouréBooked at 28mins
- 7SterlingBooked at 36minsSubstituted forNavasat 66'minutes
- 21SilvaSubstituted forRegesat 79'minutes
- 19SanéSubstituted forNolitoat 84'minutes
- 33Gabriel Jesus
- 17De Bruyne
- Mike Jones
- Shots on Target
Second Half ends, Crystal Palace 0, Manchester City 3.
Corner, Manchester City. Conceded by Andros Townsend.
Goal! Crystal Palace 0, Manchester City 3. Yaya Touré (Manchester City) from a free kick with a right footed shot to the top left corner.
Delay over. They are ready to continue.
Delay in match Gabriel Jesus (Manchester City) because of an injury.
Joe Ledley (Crystal Palace) is shown the yellow card for a bad foul.
Foul by Nolito (Manchester City).
Joe Ledley (Crystal Palace) wins a free kick in the defensive half.
Gabriel Jesus (Manchester City) wins a free kick in the attacking half.
Foul by James McArthur (Crystal Palace).
Foul by Yaya Touré (Manchester City).
Mathieu Flamini (Crystal Palace) wins a free kick in the defensive half.
Hand ball by Gaël Clichy (Manchester City).
Substitution, Manchester City. Nolito replaces Leroy Sané.
Foul by Jesús Navas (Manchester City).
Lee Chung-yong (Crystal Palace) wins a free kick in the attacking half.
Foul by Fernando (Manchester City).
Loïc Remy (Crystal Palace) wins a free kick on the right wing.
Foul by Leroy Sané (Manchester City).