Goalkeepers Kasper Schmeichel and Ederson made crucial saves in a free-flowing match to keep their respective teams on level terms before Bernardo Silva’s close-range finish settled a fine contest.
The Portuguese pounced after Joao Cancelo’s shot was deflected by Caglar Soyuncu into Silva’s path.
At 0-0 Manchester City’s Ederson saved well from Harvey Barnes, while at the other end Gabriel Jesus was twice denied by Schmeichel.
Leicester created several chances, Barnes clipping the top of the bar with a header before Jamie Vardy had a goal ruled out for offside.
Silva’s goal means City have won all their games since starting the defence of their Premier League crown with a 1-0 defeat at Tottenham.