Saints, who were without four regular starters, including top scorer Danny Ings, and playing their first game since beating Liverpool back on January 4, made a fast start and nearly grabbed a lead only for Che Adams to be denied a goal on 23 minutes.
But it was Leicester who took the lead eight minutes before halftime through James Maddison after initially struggling to get into the action in the opening stages.
Ibrahima Diallo appeared to be fouled in the build up to the goal, but Leicester turned their defence into a counter-attack down the right and Maddison got on the right side his defender before smashing a shot into the roof o the net.
Bertrand had two quality chances to bring Saints level either side of the break, but Kasper Schmeichel was equal to the task on both occasions.
The full back almost produced an immediate response when he was sprung by a smart ball by James Ward-Prowse, but Schmeichel used his foot to direct the ball away before making a save in a similar fashion moments after the restart.
Stuart Armstrong thought he’d found the equaliser 18 minutes from full-time, though he struck the crossbar from distance with a powerful right-footed shot after turning his defender inside out.
Jan Bednarek did well to clear Harvey Barnes’ shot off the line with Leicester aiming to see out the match, but the defender atoned for his own mistake having headed the ball back towards the face of goal.
Vardy found the wrong side of the post twice before Barnes made it 2-0 deep into added time to secure all three points for the Foxes and bring them into second in the table ahead of Sunday’s matches.
Leicester City (4-2-3-1): Schmeichel; Justin, Evans, Fofana (Soyuncu 53), Castagne; Tielemans, Ndidi; Barnes, Maddison (Perez 77), Albrighton; Vardy (Iheanacho 90+1)
Unused subs: Ward, Mendy, Pereira, Amartey, Perez, Thomas, Under
Goals: Maddison (37)
Bookings: Fofana (15), Albrighton (45)
Southampton (4-4-2): McCarthy; Bertrand, Stephens, Bednarek, Walker-Peters; Smallbone (N’Lundulu 61), Ward-Prowse, Diallo (Valery 87), Armstrong; Adams (Long 72), Walcott
Unused subs: Forster (GK), Vokins, Ferry, Tchaptchet, Watts, Chauke
Bookings: Diallo (44). Betrrand (59)