Rookie striker Kelechi Iheanacho came off the bench to score a 90th minute winner as Manchester City maintained their 100% Premier League record.
Unlikely hero Iheanacho tapped in with his first touch after Alex McCarthy spilled Samir Nasri’s shot as Palace eventually crumbled under increasing pressure.
But the win was tempered by a knee injury to Sergio Aguero, who was taken out by a late Scott Dann tackle in the first half, and hobbled off a couple of minutes later.
City shaded an eventful first half that saw managers Alan Pardew and Manuel Pellegrini clash on the touchline, but the Citizens failed to make the breakthrough, with Wilfried Bony spurning their best chance when he was denied twice in quick succession.
Palace could have capitalised on the stroke of half time when Wilfried Zaha did well to pick out Bakary Sako at the far post, but the Mali international hammered his volley over the bar.
The game’s defining moment appeared to come early in the second half when Jesus Navas was put clean through by debutant Kevin de Bruyne, but the Spaniard inexplicably missed the open goal after taking the ball around Palace keeper Alex McCarthy.
City broke the deadlock as the clock ticked towards the 91st minute, increasing their points tally to 15 from a possible 15, but Pellegrini will now be sweating over the fitness of Aguero – as well as Raheem Sterling and David Silva – ahead of their midweek Champions League clash with Juventus.