After a goalless first half, Sergio Aguero effortlessly drilled the ball into the roof of the net with the outside of his boot to give City the lead.
City doubled their lead just 84 seconds later through Ferran Torres, while Raheem Sterling struck the post minutes after.
Palace impressed in the first half and created several chances for Christian Benteke, but the Belgian striker couldn’t find the net.
The result means City are just one win away from becoming Premier League champions assuming Manchester United win at home to Liverpool, while Palace lie in 13th and may slide down the table if clubs around them win.
Here are the player ratings from the game on Saturday.
Vicente Guaita – 5. The Argentine goalkeeper could do nothing about Aguero’s finish, but he may not want to look at Torres’ goal again.
Joel Ward – 8. He made a terrific run forward to create a chance for Benteke in the first half, and he dealt with the threat of Sterling well.
Scott Dann – 6. The central defender made a crucial intervention to deny Jesus a goal after fine work from Torres.
Cheikhou Kouyate – 5. Failed to close down Torres for the Spaniard’s goal, which ruined an otherwise solid outing. Booked late for a challenge on Sterling.
Tyrick Mitchell – 7. The left-back made a crucial block to deny Sterling and impressed in the first half.
Luka Milivojevic – 5. Dominated by Fernandinho in midfield.
Jairo Riedewald – 7. Impressed in midfield, meshing a fine tackling ability with a notable work rate.
Eberechi Eze – 7. Playing in a deeper role than usual, Eze was a lively figure for Palace as he worked hard to disrupt City’s midfield. He dispossessed Sterling in the penalty area when the winger looked set to open the scoring.
Andros Townsend – 6. Palace’s best attacks often came through Townsend, who impressed throughout with individual moments of skill. He was completely anonymous in the second half.
Wilfried Zaha – 4. Struggled to make an impact on the game and was largely anonymous. His body language and attitude was poor on a frustrating day for the forward.
Christian Benteke – 6. The Belgian striker should have done better when he was picked out by Townsend, but he never really met the cross.
Jeffrey Schlupp – 6.
Jean-Philippe Mateta – 6.
Jordan Ayew – 6.
Ederson – 6. The Brazilian made a fine stop to deny Benteke from close range, but was otherwise not needed as Palace failed to create any clear chances.
Joao Cancelo – 6. He drifted around the pitch as he usually does but the Portugal international’s defending was suspect.
Aymeric Laporte – 7. He had little to do. A quieter game for the Frenchman than the League Cup final.
Nathan Ake – 7. You’d be forgiven for not noticing Ake was playing, and such anonymity is never a bad thing for a defender.
Benjamin Mendy – 6. Defensively suspect, but his offensive ability allowed City to space the field. Dispossessed too easily a number of times.
Fernandinho – 8. City’s captain sat deep and allowed his teammates to do the work. Guardiola’s team looked much more defensively sound with the Brazilian on the pitch.
Rodri – 6. Like Fernandinho, his solidity ensured that Palace struggled to create anything through the middle. Some of the Spanish international’s passes and crosses were lazy.
Ferran Torres – 7. The Spaniard looked threatening on the right-hand side and his direct runs
Raheem Sterling – 5. Sterling’s poor run of form continued at Selhurst Park, with the England international struggling for composure in front of goal.
Sergio Aguero – 7. The Argentine looked off the pace in the first half, but his goal was magical. A vintage moment from Aguero.
Gabriel Jesus – 6. Expertly finished to score his offside goal, but the Brazilian should have worked harder to stay onside.
Oleksandr Zinchenko – 6.