Leicester had to withstand a barrage of first-half pressure from their visitors but they held firm for the point that took them level with Arsenal at the top of the table.
The Foxes grew in confidence after half-time and could have snatched another major scalp in their extraordinary season.
Manchester City are without a win in six Premier League away games but boss Manuel Pellegrini will take heart from a dominant performance before half-time.
Leicester abandoned their normal 4-4-2 system and started with Gokhan Inler as an extra midfielder alongside N’Golo Kante and the returning Danny Drinkwater, who was back from a hamstring injury.
Shinji Okazaki and Andy King were the men to make way while City brought back Sergio Aguero in place of Wilfried Bony.
The visitors made all of the early running and exploited their hosts repeatedly down the flanks.
Pellegrini’s men wasted several decent crossing opportunities before Leicester almost struck a blow against the run of play.
Inler was fouled 25 yards from goal and Christian Fuchs’ free-kick was headed over by Robert Huth.
But Manchester City were the more likely scorers and the should have made the breakthrough when Raheem Sterling burst down the right and squared for Kevin De Bruyne.
He hit a firm shot but it was pushed away solidly by Kasper Schmeichel in the home goal.
Leicester had been pinned back in their own half with striker Jamie Vardy isolated for lengthy spells.
But Riyad Mahrez, his goalscoring partner in crime, nearly made the most of a slip by Nicolas Otamendi and tried a curling shot from an angle that dipped just over.
Manchester City came again, however, and Schmeichel came to the rescue once more when he pushed away a decent shot from Sterling.
The pair were engaged in a personal battle and Schmeichel succeeded again on 32 minutes when he pushed a left-footed effort by Sterling over the bar.
After withstanding waves of pressure, Leicester should twice have led in the 40th minute.
First Fuchs’ cross from the left eluded Marc Albrighton at the far post by inches.
Then Fernandinho gifted possession to Jamie Vardy, who exchanged passes with Drinkwater on the edge of the box before blasting over.
Aguero should have given the visitors the lead a minute into the second half when he arrived at the near post to meet a De Bruyne cross.
But Leicester, who had squandered possession cheaply, were reprieved when the Argentine sent a cheeky chip over the crossbar.
Albrighton sent a shot into the side netting from a tough angle after a smart pass by Mahrez as Ranieri’s men grew in confidence.
But they almost fell behind when Otamendi met a corner from De Bruyne with a firm header that forced Schmeichel into another good save.
With momentum behind them, Leicester sent on Leonardo Ulloa for Inler as they went on the attack.
It almost paid off instantly as Ulloa’s decoy run allowed Vardy to collect Drinkwater’s pass, but he shot straight at Joe Hart in the Manchester City goal.
Late on Hart had to make a good, flying save to keep out a thunderous shot from Fuchs following a short corner by the Foxes.