The home side broke the deadlock when Phil Foden leveled Jack Grealish with a split defense pass for a third top-flight goal in a row.
Pep Guardiola’s side looked to have doubled their lead through Julián Álvarez before VAR ruled it out for offside against Rodrigo.
Less than two minutes later, the reigning champions cemented that advantage as Rico Lewis scored his first goal for the club.
But the Eagles set up a potentially nervy finale when Jean-Philippe Mateta reduced their deficit with a sliding finish from Jeffrey Schlupp’s cut-back.
Deep into stoppage time, City were called back when Foden conceded a penalty against Mateta, from which Michel Olise stepped up to take the spoils.
Man City Player Rating
Ederson – 5 : Hesitant and then rash all in the same move to earn a yellow card for an unnecessary challenge out of his box.
Walker – 6: A little too eager to go for goal when Palace were defending deep but his use of the ball got better as the game went on. A bystander for the goal
Dias – 6: An improvement on recent matches, with smart tackles and interceptions to keep City on the front foot. Lost out too easily to Schlupp for the first goal though
Ake – 7: So underrated as a player, he makes City much more stable at the back and covered Josko Gvardiol on the left.
Gvardiol – 6: Pushed up more than he usually would in the first half and enjoyed being found in unfamiliar territory.
Rodri – 7: A few loose passes to end promising moves but still good enough to give his side control.
Lewis – 7: Took his first Premier League goal well and showed his value to the team with a busy performance linking with Silva.
Foden – 5: Created the first goal skilfully, but his influence on the game faded in the second half and then he gave away the late penalty
Silva – 7: Showed his experience to know what to do with the ball in every situation, keeping busy on the right side and cutting in.
Grealish – 7: Scored the first and played an important role in the second, stepping up and taking responsibility as a key player in the attack.
Alvarez – 5: Saw an early header saved well but struggled to have any goal threat after that.
Stones (for Lewis, 90) No time