Manchester City had to come from behind to beat Everton as the champions kept pace with Premier League leaders Liverpool.
Pep Guardiola's side are aiming to lift the trophy for the fourth consecutive season and had looked like falling eight points behind the Reds, but recovered with three second-half goals to lift themselves to fourth in the table.
In blustery conditions, Everton weathered an early storm from City as Jordan Pickford made crucial saves to twice thwart Julian Alvarez, as well a keeping out Jack Grealish's poked effort at full stretch.
The hosts took the lead with their first meaningful attack of the game when Jack Harrison slotted in from close range and he could have had a second against his former club but was denied by Ederson's stunning save.
But City responded in like champions after the break through Phil Foden, who picked the ball up outside the area and smashed in a low finish past the reach of Pickford.
The visitors turned it around on 64 minutes courtesy of Julian Alvarez's penalty after Amadou Onana handled in the box and Bernardo Silva curled into an open net after Pickford's miscued clearance to leave Everton hovering just one point above the relegation zone.
7' CLOSE! Walker’s shot wide out
12' Foden’s shot wide out!
15' Alvarez misses a golden chance!
23' Pickford makes decent save to stop Grealish
29' GOAL! Everton 1-0 Man City (Jack Harrison)
31' Rodri nearly scores for City!
32' SuperSave From Ederson!
39' Yellow Card! Nathan Patterson booked
42' Injured Stones replaced by Gvardiol
53' GOAL! Everton 1-1 Man City (Foden)
53' Unbelievable! What a miss from Foden!
64' Penalty Goal! Everton 1-2 Man City (Julián Álvarez)
85' CLOSE! Alvarez’s shot wide out
86'
Read on m.allfootballapp.com