Leicester secure back-to-back wins with a 1-0 victory over Leeds, thanks to a second-half strike from Barnes, which came against the run of play.
The visitors dominated the early part of the second period and should have taken the lead.
But Schmeichel was excellent in goal for the Foxes and made several saves to prevent the opener.
Leeds were then made to rue their missed opportunities as Leicester took the lead on 67 minutes through Barnes, after a lovely one-two with Iheanacho on the edge of the box.
LEICESTER (4-3-3): Kasper Schmeichel;
Hamza Choudhury, Daniel Amartey, Caglar Soyuncu, Luke Thomas;
Wilfred Ndidi, Kiernan Dewsbury-Hall, Youri Tielemans;
Marc Albrighton, Jamie Vardy, Harvey Barnes.
LEICESTER SUBS: Danny Ward, Kelechi Iheanacho, Ayoze Perez, Jan Vestergaard,
Nampalys Mendy, Patson Daka, Ademola Lookman, Boubakary Soumare, Lewis Brunt.
LEEDS (3-5-2): Illan Meslier;
Stuart Dallas, Luke Ayling, Pascal Struijk, Junior Firpo;
Robin Koch; Raphinha, Mateusz Klich, Rodrigo, Jack Harrison;
LEEDS SUBS: Kristoffer Klaesson, Adam Forshaw, Patrick Bamford, Tyler Roberts,
Joe Gelhardt, Charlie Cresswell, Crysencio Summerville, Sam Greenwood, Jamie Shackleton.
So, where else do Leicester and Leeds go from here?
This victory moves Leicester up to 10th in the table, and they will now turn their attentions to the Europa Conference League as they face Rennes in the first leg on Thursday.
Meanwhile, Leeds remains 16th but could drop further today if Burnley picks up all three points in their game.