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.
Follow live coverage of Wednesday's Premier League actionHow did you rate Everton's performance? Have your say hereWhat did you make of Manchester City's display? Send us your views hereWelcome win for City
Last season's Treble winners City lifted their fifth trophy in a stellar 2023 with victory at the Club World Cup in Saudi Arabia on Friday.
They are looking to become the first side to win the Premier League title for four seasons in a row but the faltering champions have work to do to achieve that unprecedented feat.
City are chasing Liverpool and Arsenal but Guardiola's team is a winning machine that becomes dangerous the longer the season goes on. They were eight points adrift of top spot on this day last year.
They had to do it the difficult way on Merseyside, being kept at bay by the inspired Pickford, before breaching the England number one's goal after the interval.
Foden's finish was magnificent, smacked in at the near post from 20 yards out, while Alvarez's spot-kick doubled their advantage and Silva's fine finish punished Pickford's mistake.
City's winning margin should have been an even greater one, with Alvarez's free-kick from range brilliantly tipped over the bar by Pickford and Foden rattling the post in injury time.
After a run of one win in their past six games, this was a welcome victory for the visitors, but concerns remain in defence where they have failed to keep a clean sheet in their last eight league games.
The injuries are stacking up too, with Guardiola saying star duo Erling Haaland and Kevin de Bruyne will be unavailable until sometime in January and John Stones limping off against his old club with a foot issue.
More to follow.
How to play
Rate players out of 10 throughout or after the game. The rater will close 30 minutes after the final whistle.
Rating range key1 = Give it up10 = Pure perfection
Everton
Squad number1Player namePickford
Squad number2Player namePatterson
Squad number6Player nameTarkowski
Squad number32Player nameBranthwaite
Squad number19Player nameMykolenko
Squad number21Player nameAndré Gomes
Squad number8Player nameOnana
Squad number11Player nameHarrison
Squad number37Player nameGarner
Squad number7Player nameMcNeil
Squad number14Player nameBeto
Squad number5Player nameKeane
Squad number9Player nameCalvert-Lewin
Squad number10Player nameDanjuma
Manchester City
Squad number31Player nameEderson
Squad number2Player nameWalker
Squad number5Player nameStones
Squad number25Player nameAkanji
Squad number6Player nameAké
Squad number27Player nameMatheus Nunes
Squad number16Player nameRodri
Squad number20Player nameBernardo Silva
Squad number47Player nameFoden
Squad number10Player nameGrealish
Squad number19Player nameÁlvarez
Squad number8Player nameKovacic
Squad number24Player nameGvardiol
Line-ups
Everton
Formation 4-2-3-1
1PickfordBooked at 63mins2PattersonBooked at 39mins6Tarkowski32BranthwaiteBooked at 78mins19Mykolenko21André GomesBooked at 60minsSubstituted forKeaneat 65'minutes8Onana11HarrisonSubstituted forDanjumaat 80'minutes37Garner7McNeil14Gomes BetuncalSubstituted forCalvert-Lewinat 65'minutesSubstitutes
5Keane9Calvert-Lewin10Danjuma12Neves Virgínia22Godfrey23Coleman28Ramalho Chermiti58Hunt61DobbinMan City
Formation 4-2-3-1
31Ederson2Walker5StonesSubstituted forGvardiolat 43'minutes25AkanjiBooked at 59mins6Aké27NunesSubstituted forKovacicat 65'minutes16Rodri20Bernardo Silva47Foden10GrealishBooked at 81mins19ÁlvarezSubstitutes
4Phillips8Kovacic18Ortega21Gómez24Gvardiol52Bobb76Susoho82Lewis92HamiltonReferee:John Brooks
Attendance:39,327
Live Text
Match ends, Everton 1, Manchester City 3.
Second Half ends, Everton 1, Manchester City 3.
Julián Álvarez (Manchester City) wins a free kick in the defensive half.
Foul by Michael Keane (Everton).
Attempt saved. Phil Foden (Manchester City) left footed shot from outside the box is saved in the top centre of the goal. Assisted by Bernardo Silva.
Phil Foden (Manchester City) hits the right post with a left footed shot from outside the box. Assisted by Julián Álvarez.
Josko Gvardiol (Manchester City) wins a free kick in the defensive half.
Foul by Nathan Patterson (Everton).
Goal! Everton 1, Manchester City 3. Bernardo Silva (Manchester City) left footed shot from a difficult angle and long range on the right to the bottom left corner.
Attempt missed. Julián Álvarez (Manchester City) left footed shot from the left side of the box is too high. Assisted by Josko Gvardiol.
Jack Grealish (Manchester City) is shown the yellow card for a bad foul.
Foul by Jack Grealish (Manchester City).
Dwight McNeil (Everton) wins a free kick in the defensive half.
Substitution, Everton. Arnaut Danjuma replaces Jack Harrison.
Jack Grealish (Manchester City) wins a free kick in the attacking half.
Foul by James Tarkowski (Everton).
Jarrad Branthwaite (Everton) is shown the yellow card for a bad foul.
Bernardo Silva (Manchester City) wins a free kick in the defensive half.
Foul by Jarrad Branthwaite (Everton).
Delay over. They are ready to continue.