An own goal from Hector Bellerin saw Leicester take a 31st-minute lead in London, but Arsenal then scored three times without reply, including a double from substitute Pierre-Emerick Aubameyang, to make it 10 straight wins in all competitions.
The Gunners have now been victorious in their last seven Premier League matches, meanwhile, and have moved above Tottenham Hotspur into fourth position in the table, just two points off the summit.
Leicester had a glorious chance to take the lead inside the first two minutes when Kelechi Iheanacho broke the offside trap before driving into the Arsenal box, but the Nigerian saw his strike deflected over by Rob Holding.
Iheanacho then forced a smart save from Gunners stopper Bernd Leno in the sixth minute as the visitors made a strong start to the clash in the English capital, and that was a sign of things to come in the first period.
Leicester should have had a penalty in the 18th minute when Holding clearly handled the ball inside his own box, but the referee waved away the appeals, which were led by Harry Maguire.
Maguire then should have sent Leicester ahead moments later when he had a free header inside the Arsenal box, but Leno was on hand to make a wonderful save.
Arsenal were struggling defensively and indeed in the final third, and a long-range strike from Alexandre Lacazette in the 26th minute never threatened to trouble Schmeichel.
Leicester finally took the lead in the 31st minute, but they needed a huge slice of luck. Indeed, Ben Chilwell managed to drive past Bellerin into the box, and the left-back's low cross was deflected into the home side's net by Arsenal's Spanish defender.
Schmeichel kept out a dipping Granit Xhaka free kick in the period that followed, before the Leicester goalkeeper had to keep out a strike from Alex Iwobi as the home side chased a leveller before the break.
It did appear that Leicester would enter the interval with a one-goal advantage, but Arsenal equalised in the closing stages of the half when Mesut Ozil, who had the captain's armband, carefully placed a low Bellerin cross into the back of the net off the post.
Henrikh Mkhitaryan had a wonderful chance to send Arsenal ahead early in the second period following a mix-up inside the Leicester box, but the Armenian fired just wide of the post from a dangerous position.
Leicester came within inches of re-taking the lead just before the hour when Wilfred Ndidi rose highest inside the Arsenal box to meet a corner from the right, but his header smashed off the woodwork.
Aubameyang needed less than two minutes to make his mark, with the January arrival from Borussia Dortmund tapping a low Bellerin cross into the back of the net to send the Gunners ahead.
The home side then had their third in the 66th minute when Aubameyang finished off another fine move. Lacazette released Ozil inside the Leicester box with a fine pass, and the German's flick was turned home by Aubameyang for his second of the match.
Lacazette should have made it 4-1 in the 78th minute when he was presented with a low cross inside the Leicester box, but Schmeichel was on hand to make a fine save.
Lacazette had another super chance in the 84th minute when Iwobi delivered low into the Frenchman, but the centre-forward fired over the crossbar.
In the end, 3-1 was how it finished on a mild night in the English capital, with Arsenal turning things around in front of their own supporters to put up their 10th straight win in all competitions.
ARSENAL (4-2-3-1): Leno; Bellerin, Mustafi, Holding, Lichtsteiner (Aubameyang 61'); Xhaka, Torreira; Mkhitaryan (Guendouzi 61'), Ozil (Ramsey 80'), Iwobi; Lacazette
LEICESTER CITY (4-2-3-1): Schmeichel; Amartey, Maguire, Evans, Chilwell; Mendy, Ndidi; Ricardo (Ghezzal 69'), Iheanacho (Albrighton 61'), Maddison (Okazaki 75'); Vardy