Wilfried Zaha became the first player to score 50 top-flight goals for Crystal Palace as 10-man Manchester City suffered a shock defeat at Etihad Stadium.
Zaha struck after just six minutes when Conor Gallagher robbed Aymeric Laporte inside his own half before Gallagher wrapped up the points when he fired home two minutes from time.
Laporte was red-carded by referee Andrew Marriner in the first-half stoppage time when he committed a professional foul by bringing down Zaha 35 yards from the city goal.
Even with a man down, the host remained a goal threat and Gabriel Jesus thought he had levelled when he turned home Phil Foden’s superb far-post cross, only for Video assistant referee, Lee Maso to rule the England forward was offside in the build-up.
City fans were infuriated by what they saw as time-wasting from Palace, which started in the opening period, and manager Pep Guardiola was less than impressed with what he saw too, judging by the number of times he spoke to fourth official Anthony Taylor.
But Palace were a danger on the break, with Jordan Ayew and Gallagher both wasting decent chances before Gallagher finished Michael Olise’s lay-off to give Patrick Vieira’s men victory and end a frustrating run of four consecutive Premier League draws.
Similarly, Chelsea lashed Newcastle 3-0 while Liverpool were held to 2-2 draw by Brighton.