Despite a 96th-minute equaliser from Jeremy Doku, his second stunning goal in the match, City are now five points behind Arsenal with one game in hand.
At the other end of the table, Nottingham Forest eased their relegation worries with a 3-1 win at Stamford Bridge, Chelsea's sixth consecutive Premier League defeat.
City led 1-0 after 65 minutes, but conceded three goals in 14 madcap minutes, two scored by Everton substitute Thierno Barry and one by Jake O'Brien.
Erling Haaland pulled one back immediately, but the equaliser came at the last gasp.
Everton had not beaten Manchester City in their previous 17 meetings, losing all but two of them, while their manager David Moyes has never been on the winning side against Pep Guardiola.
"We played an outstanding first half. It was so difficult with their physicality," Guardiola said on Sky Sports.
"Second half, maybe we were not as much in control and after we gave away the goal, they came back and made a proper English game, so aggressive in the duels, but in general we made a really good performance.
"It is better than losing, (but of course it is) better to win and we played for that."
City next play Brentford at home on Saturday, before Arsenal travel to London rivals West Ham.
"It (the title) is not in our hands," Guardiola said.
"We have four games in the Premier League, next is Brentford, and it will be quite similar, because the competitors are good and we will see what happens.''
Forest's victory came despite fielding a second-string XI ahead of Thursday's Europa League semi-final second leg against Aston Villa.
The seven players brought in by Vitor Pereira had 11 league starts this season between them.
Yet two goals by Taiwo Awoniyi - the first after just 98 seconds - and a penalty from Igor Jesus took them six points clear of the relegation zone with three games to play.
Joao Pedro's stoppage-time overhead kick was no great consolation for Chelsea, except it ended a league goal drought stretching back to March 4.
Interim Chelsea head coach Calum McFarlane had his options reduced by late injuries to Pedro Neto and Alejandro Garnacho, leading to a first Premier League start for 18-year-old Jesse Derry.
However, the teenager required oxygen and was carried off on a stretcher with a head injury late in the first half after colliding with Forest's Zach Abbott.
The club later said the young forward was conscious and talking while undergoing checks.
While that led to a first appearance of the season for Levi Colwill, after suffering an ACL injury in August, Chelsea then lost goalkeeper Robert Sanchez, forced off with a bandage around his bleeding head following a collision with Morgan Gibbs-White.
Forest's first goal came after Chelsea lost possession, enabling Dilane Bakwa to cross for Awoniyi, unmarked six yards out, to nod it home.
The second was a penalty after Malo Gusto tugged Awoniyi's shirt.
On 52 minutes Awoniyi converted Gibbs-White's cross, narrowly staying onside to tap in from two yards out.