City fans chanted "Champions again" despite their team sitting fifth in the table, four points behind fourth-placed Chelsea. The victory against Leicester, the division's third-worst team, was harder than expected and exposed City's vulnerabilities.
Erling Haaland scored a late header to seal the win, capitalizing on a slick move initiated by substitute James McAtee. This goal followed Savinho's opener, which came from a rebound off a Phil Foden shot.
Despite the win, City's performance was far from convincing. It was only their second win and second clean sheet in 14 matches, highlighting the need for reinforcements in the January transfer window.
Jamie Vardy, leading the line for Leicester, proved a constant threat to City's defense. He hit the crossbar and came close on several other occasions, exposing frailties in City's backline.
Leicester created numerous chances and were unlucky not to score. Bilal El Khannouss delivered several dangerous crosses, and Facundo Buonanotte was unlucky to hit the post with a header.
City looked shaky at the back and lacked their usual dominance. Kevin De Bruyne, Guardiola's only change from the draw against Everton, struggled at times.
Haaland missed a good chance to extend City's lead before finally scoring his goal. The Norwegian striker, who recently became a father, had endured a goal drought in recent weeks.
Despite the unconvincing performance, the win provides a much-needed boost for City as they look to climb back up the table.