Pep Guardiola's title-hungry team started the game in fifth place, but they had a golden chance to put pressure on their rivals. They dominated the early stages, with Matheus Nunes forcing a smart save from Jordan Pickford.
Everton had the first real chance, with James Tarkowski heading a corner against the post. City's best opening came from Nunes, but his effort was deflected away by Jake O’Brien.
Everton's defenders were the stars of the show, with Jarrad Branthwaite and Abdoulaye Doucouré both missing chances. The game looked headed for a stalemate, which wasn't great news for City's top-five push.
But City ramped up the pressure in the final 20 minutes. Savinho's strike forced Pickford into action, and in the final 10 minutes, Nico O’Reilly turned home Nunes' delivery to give City the lead.
Pickford made another crucial save to deny Omar Marmoush, but City's resistance was finally broken in stoppage time when Mateo Kovačić scored from the edge of the area to seal a nervy victory.
Flashscore Man of the Match: Nico O’Reilly (Manchester City)