Southampton held off a late fightback from Norwich City as they secured a 4-2 Premier League win at St Mary's.