Two Gabriel Jesus goals inside six second-half minutes condemned Carlo Ancelotti to his first defeat as Everton manager.
This was another competitive performance from Ancelotti’s team, though, and it was a measure of Everton’s resurgence that City’s fans were whistling for full-time as their team hung on late in the day after Richarlison halved the deficit on 71 minutes.
Indeed, an Everton corner during four minutes of stoppage time was delayed by the home supporters' refusal to return the ball.
Everton were trailing to those two quickfire Jesus goals when a mix of perseverance and collective awareness hauled them back into the game
Claudio Bravo’s heart was beating fast after he outfoxed the closing Dominic Calvert-Lewin.
The goalkeeper, then, was sufficiently bullish to try a cute pass out of his box. Richarlison twigged the plan and lunged to get a foot on the ball. Moise Kean took over, Eric Garcia’s tackle on the Italian inadvertently feeding Theo Walcott on the right.
Walcott hammered the ball to the far post where Richarlison arrived to force it high into the net.
Everton had been hit by a double whammy soon after half-time.
Ilkay Gundogan’s cute pass set up Jesus for his first on 51 minutes. The German was found in space in space by Benjamin Mendy but ostensibly there seemed little danger for the visitors when Gundogan controlled and looked up.
The midfielder, though, could see Jesus sprinting between Yerry Mina and Mason Holgate and found his colleague with a tremendous pass.
Jesus cut back onto his right foot and shot across Jordan Pickford, who got one hand to the ball but could not apply enough force to prevent it slipping inside his left post.
Brazilian Jesus’s second came from a Ryiad Mahrez pass and defeated Pickford to the goalkeeper’s right.
In a Premier League season when five clubs have changed manager and all sorts of issues remain unresolved, VAR has usurped all else as the game’s chief talking point.
And despite waking up this morning to a new year – a new decade – there was little indication in the first half here of a narrative change any time soon.
Tom Davies – a battlefield promotion following an injury to Bernard shortly before kick-off – got as far as drawing back his right boot to restart the game after Phil Foden’s 13th-minute ‘goal’.
Referee Andre Marriner had word in his ear in the nick of time and a re-examination of the move which led to Foden’s conversion showed Mahrez straying offside when he received a pass round the corner from Joao Cancelo.
Cancelo advanced onto the return to slide the ball across for Foden to tap in but, as it turned out, they might as well have knocked it on the head a few seconds earlier.
There was a curious incident soon after when City continued to attack following an offside flag and Mahrez crumpled to the turf following a challenge from Lucas Digne.
That coming together was checked back at Stockley Park. The outcome? A free-kick to Everton for the original offside.
As the events would suggest, City were making most of the running, enjoying extended periods of possession.
But Everton could fairly stake claim to having carved out the best chance of the opening half. Certainly to the most pleasing move.
Seamus Coleman was buzzing around, sniffing out space, as Djibril Sidibe collected a fabulous cross-field pass from Holgate.
As Sidibe played back to Sigurdsson, Coleman darted into the box to receive the Icelander’s deft chip over the top.
Coleman controlled and funnelled the ball goalwards with his left foot. Bravo sprung to apply a vital touch and turn over the top.
Everton finished the half with defender Mina, under severe pressure from Rodrigo, heading over a Sigurdsson corner.
Meantime, though, City maintained a steady threat, Mahrez and Mendy their two chief protagonists.
Pickford saved from Mahrez at his near post after the Algerian was ushered in by Mendy and not long before the break Mahrez couldn’t untangle his feet to finish a Mendy delivery – Digne doing enough to smuggle the ball back to Pickford.
Jesus short over from 20 yards following Foden’s pass through the middle – and Pickford made another sharp stop after Foden latched onto Mendy's latest incisive ball to aim at goal.
City’s frustration was nearing boiling point four minutes before the break.
Mina did enough to slow Jesus’s run but the striker held onto possession in the box, waiting for Mahrez to arrive.
When he got there, you fancied the African to burst the net but he hurried his effort somewhat and swiped it beyond Pickford’s right post.
City did get their goal six minutes after the interval despite Pickford’s despairing attempt to save – but Everton were very close to an immediate riposte.
Fernandinho was rushed into conceding a corner, which Sigurdsson hung into the box.
Calvert-Lewin made fairly good contact but Fernandinho got enough on the ball to force it past Bravo’s left post.
Jesus’s second strike was the result of slick build up through the middle of the pitch.
Foden collected a pass from Kevin De Bruyne and transferred the ball forward to Mahrez. He spied Jesus pulling away to the left and fed the South American, whose low drive beat the lunge of Mina and then Pickford’s dive to his right.
Kean came on to join Calvert-Lewin in attack, Walcott having replaced Coleman directly after City’s second goal, as Ancelotti switched to an authentic 4-4-2.
Richarlison bagged his ninth goal of the season with 19 minutes remaining to reignite the game – and Kean would have set it on fire had his scissor kick from Sidibe’s 76th-minute cross snuck inside Bravo’s left post.
The game was becoming incredibly stretched now.
Jesus cracked a post on 78 minutes – 60 seconds after City roared for a penalty after Sidibe’s last-ditch tackle on Foden.
Replays proved Marriner's call correct.
Pickford tumbled to his left to deny Jesus a hat-trick when the City player took aim on 81 minutes and from then on Everton pressed for a leveller. There was no way, through, though, City clearing a late corner and scrambling away a handful of deliveries from Everton's widemen to curb the Blues' unbeaten run at five.
DCL Keeps On Keeping On
When Dominic Calvert-Lewin claimed Everton’s number 9 jersey it was with the stated aim of becoming a complete centre-forward.
Goals are a striker’s most valuable currency, of course, and the five Calvert-Lewin had netted in five starts before today plonked him in the spotlight.
But the 22-year-old comes to this job armed with a multitude of relevant attributes and – returning to the scene of one of his most rounded Everton displays in August 2017 – Calvert-Lewin needed a similarly complete performance here.
His touch was immaculate when Jordan Pickford lobbed a ball forward after six minutes, Calvert-Lewin employing his hulking frame to keep the snapping Rodrigo at bay. He used his chest to cushion another precise pass from goalkeeper Pickford and resist the attentions of Eric Garcia.
There was a clever pass which would have freed Djibril Sidibe on the right but for Benjamin Mendy’s sliding intervention.
Carlo Ancelotti slapped his hands together on 20 minutes when Calvert-Lewin chased his own headed flick and prevented right-back Joao Cancelo letting the ball run behind.
The Everton player’s physique makes him a very handy asset defending set-pieces, too, and he got his head in the way of Fernandinho’s goalbound header from a corner shortly before the half hour.
Calvert-Lewin and fellow forward Richarlison were seeing little of the ball – the pair had the fewest touches of Everton’s players in the opening 45 minutes – but the duo’s industry ensured City’s three-man defence was always occupied, crucial when Pep Guardiola would have rather liked one of that trio to supplement his midfield.
When he had the service, though, Calvert-Lewin looked dangerous.
Sigurdsson swung over a corner directly after City opened the scoring to find Calvert-Lewin leaping but seeing his effort deflected a foot wide.
He deserves a sliver of credit, too, for chasing down Claudio Bravo before the home goalkeeper coughed up possession to invite Everton back into the game.
Twice Calvert-Lewin ran behind City’s defence and controlled expertly as Everton went after an equaliser.
His challenge on Fernandinho which earned a booking annoyed the locals but ensured Everton’s juices continued to flow.
Carlo Ancelotti conceded immediately after Everton’s Boxing Day success over Burnley that the squeezed festive calendar would force his hand when it came to selection for Newcastle United two days later.
Sure enough, Ancelotti changed five of his starting XI. He did exactly the same here – albeit Tom Davies came back in following Bernard’s eleventh-hour withdrawal.
Of the six players included by Everton’s new manager for each of his opening three games, four were studded right down the spine of the team.
The enduring presence of the quartet of Jordan Pickford, Mason Holgate, Gylfi Sigurdsson and Dominic Calvert-Lewin gave Everton a familiar look.
Potential complications caused by players being swapped in and out were minimised with at least one man providing consistency in each area of the pitch.
Richarlison was another who stayed in the side and it is indicative of his growing importance to Everton that he is the team’s only outfield ever present in the league this term.
Equally, Djibril Sidibe was moved to a more orthodox right-back position as Ancelotti reshuffled his pack in the wake of City hitting the front.
The Frenchman is a willing runner and becoming a reliable supply line for Everton forward twosome Richarlison and Calvert-Lewin.
Ancelotti has had scant time to learn about his players – but here was a vote of confidence for the spine of a side which has made good progress over the past few weeks and remains in the Premier League's top half.