David Silva’s opener was awarded despite an apparent offside against Raheem Sterling, while Riyad Mahrez had an equalising penalty disallowed after he slipped and struck the ball twice.
City climbed above Liverpool to third place and moved six points clear of fifth-place Arsenal, who visit Stoke City later on Saturday.
“We need one more game to be in the top four, but it’s in our hands,” said City manager Pep Guardiola, whose side host West Bromwich Albion on Tuesday.
“West Brom will be tough, but hopefully we can be better than today.”
At the other end of the table, Swansea City took a big step towards safety by winning 2-0 at relegated Sunderland.
Guardiola’s City took the lead in contentious circumstances in the 29th minute at the Etihad Stadium.
Sterling took a clear swipe at the ball as Silva’s mishit shot from Leroy Sane’s cut-back came past him, but despite Leicester protests, referee Robert Madley allowed the goal to stand.
The hosts doubled their lead seven minutes later, Gabriel Jesus sending Kasper Schmeichel the wrong way from the penalty spot after Sane was scythed down by Yohan Benalouane.
Leicester halved the deficit shortly before half-time when Shinji Okazaki hooked a stunning volley into the top-right corner from Marc Albrighton’s cross.
Mahrez won a 77th-minute penalty after luring Gael Clichy into a clumsy foul, but despite him sending the ball past Willy Caballero, the eagle-eyed Madley ruled it out.
“To the letter of the law it’s a double touch, but he could bring it back for an encroachment from Manchester City, so there’s a bit of injustice,” complained Leicester manager Craig Shakespeare.
“It’s bad luck from our point of view. Two City players were in the penalty box.”
Swansea, revitalised since Paul Clement’s appointment as manager in January, moved four points clear of the bottom three after Fernando Llorente and Kyle Naughton scored in a precious win at Sunderland.
Third-bottom Hull City trail Swansea by four points and will be all but relegated if they do not win at Crystal Palace — who are level on points with Swansea — on Sunday.
Southampton added to the doom and gloom at relegated Middlesbrough with a 2-1 win at the Riverside Stadium that lifted Claude Puel’s side up to ninth place.
Jay Rodriguez and Nathan Redmond netted superbly taken goals either side of half-time and the visitors could even afford for Shane Long to clip a 64th-minute penalty off the bar.
Former Chelsea striker Patrick Bamford reduced the arrears for Boro with a 73rd-minute header.
Bournemouth climbed to 10th after Josh King’s 85th-minute goal — his 16th of the campaign — snatched a 2-1 home win over Burnley, who had levelled through Sam Vokes two minutes earlier.
Junior Stanislas put Bournemouth ahead in the first half.