Leicester claimed their first home league win of the season at the third time of asking to end Southampton's 100% start to the campaign.
The home side took a 2-0 lead courtesy of a close-range finish from Darius Vassell and a Richie Wellens strike.
Dan Harding headed one back before Rickie Lambert's header into his own net restored City's two-goal lead.
The visitors hit back again through David Connolly's header but they were unable to force an equaliser.
The result is a timely boost for big-spending Leicester, who have had an inconsistent start to the season but are now up to 10th with seven points from five games.
In contrast, newly-promoted Southampton have had a stunning start to the campaign, with this their first slip-up. The defeat leaves them second, a point behind leaders Brighton.
Foxes manager Sven-Goran Eriksson made 10 changes to the side that overcame Bury in the Carling Cup in midweek, with captain Matt Mills the only player to keep his place in the XI, and it paid dividends early on as the home side took a third-minute lead.
Andy King's found space to cross for Vassell to nudge the ball past Kelvin Davis and in.
They deservedly doubled their advantage midway through the half when Jeffery Schlupp, who had earlier replaced David Nugent, teed up Wellens to curl home from 25 yards.
Against the run of play, Southampton snatched a foothold back into the game when Harding nodded Adam Lallana's cross in.
But they were hit with a sucker-punch on the stroke of half-time as Lambert's own goal was allowed to stand despite protestations from the visitors that he had been pushed by Sol Bamba.
Saints were more forceful after the break and again gave themselves hope through Connolly's header, again from a Lallana cross.
Leicester held on though, thanks partly to keeper Kasper Schmeichel, who saved superbly from Lambert late on from point-blank range.