Raheem Sterling came on to score an 82nd minute equaliser for 10-man Manchester City as Everton were denied victory on the night Wayne Rooney scored his 200th Premier League goal.
City were up against it when Rooney's strike was followed by Kyle Walker's dismissal after two quick bookings just 44 minutes into his home debut.
But Pep Guardiola's side showed belief and spirit to avoid only their second home defeat under the Spaniard.
Rooney looked to have given Everton victory when he slid Dominic Calvert-Lewin's square pass between City keeper Ederson's legs from eight yards.
And the Toffees' cause was helped when England full-back Walker collided with Leighton Baines and was then booked again, rather harshly, for catching Calvert-Lewin in the face as they competed for a high ball.
Despite their numerical disadvantage, the home side continued to press after the break and were rewarded when Sterling fired in Mason Holgate's weak defensive header.
Everton also finished with 10 men when midfielder Morgan Schneiderlin was shown a second yellow card for catching Sergio Aguero late.