Phil Foden’s late winner restored Manchester City’s six-point lead at the top of the Premier League, but Everton were denied a penalty in a controversial finale at Goodison Park.
It looked like the defending champions would drop points for a second successive week until some awful defending let Foden in to score from close range with eight minutes to go.
There was more drama when City midfielder Rodri appeared to handle a dropping ball inside his area, but the home side were not given the chance to equalise from the spot after a VAR check.
That decision brought disbelief from Toffees fans inside Goodison, particularly those in the Gwladys Street End who were closest to the incident, and referee Paul Tierney was booed off at the final whistle.
It was a thrilling conclusion to an enthralling match, which had seen Everton take the game to City in the first half before Pep Guardiola’s side imposed themselves after the break.
Jordan Pickford made a succession of saves to keep City at bay, notably a double stop to deny Kevin de Bruyne and Bernardo Silva in quick succession, but he was ultimately undone by his own team-mates.
Mason Holgate’s attempt to block Bernardo Silva’s cross only succeeded in wrong-footing Michael Keane, allowing Foden to nip in and round Pickford to score.
Everton will feel they deserved more for their efforts, but they have now lost three out of their four league games under Frank Lampard and are only one point and one place above the bottom three.
Lampard has made many mentions of the “Goodison effect” since taking charge of Everton, and his side’s fans did their best to inspire his team again.
The atmosphere appeared amplified even more by the reception given to Everton left-back Vitalii Mykolenko and his Ukraine team-mate, Manchester City defender Oleksandr Zinchenko, who were both among their sides’ substitutes.
The pair embraced during the warm-up and were both emotional when the teams emerged before kick-off, with Everton’s players draped in Ukraine flags and City’s players wearing T-shirts with the Ukraine flag on the front and the message “no war” on the back.
When the game began, the volume did not drop, and nor did the intensity of Everton’s efforts.
They undoubtedly rattled City, but with Dominic Calvert-Lewin out injured, they did not do enough in the final third to test Ederson during the time they were on top.