In their first match since announcing club-record scorer Sergio Aguero will be leaving at the end of the season, Pep Guardiola’s free-scoring side were on course for a frustrating draw before Benjamin Mendy broke the deadlock.
Fernandinho had a goal disallowed, Kevin de Bruyne’s free-kick hit the bar and Riyad Mahrez was denied against his former club by Kasper Schmeichel’s save.
However, France defender Mendy produced a lovely curling finish after stepping inside a challenge from Marc Albrighton before Gabriel Jesus sealed the points for the visitors from close range.
Leicester thought they had taken the lead on the stroke of half-time through Jamie Vardy but his celebrations were cut short by an offside flag.
City are 17 points clear of second-placed Manchester United, who host Brighton on Sunday (19:30 BST), after moving onto 74 points with seven games remaining.
Guardiola’s side need 11 points to wrap up the title.