Leicester fought from two goals down to claim a 3-2 win over Southampton at St Mary's and make it back-to-back Premier league victories.