Norwich condemned 10-man Southampton to a sixth defeat in eight Barclays Premier League matches thanks to Alex Tettey's wonderful second-half finish.
Victor Wanyama's second-half red card for two bookings tipped an even game in the Canaries' favour.
Two minutes after Wanyama's dismissal, Norwich took the lead as Tettey drilled his shot into the top corner after fine work from substitute Vadis Odjidja-Ofoe.
The win was Norwich's third in four Premier League games and eased their relegation worries.
But times are more troubled for Southampton manager Ronald Koeman, who dropped Sadio Mane from his starting line-up after the Senegalese forward was late for a pre-match team meeting.
Norwich made just one change following their 2-0 win over Aston Villa on Monday, as Gary O'Neil stepped into midfield for Graham Dorrans to make his 200th Premier League appearance.
The midfielder needed Ryan Bennett to atone for his error with a block on Steven Davis' early shot, as the Saints made a bright and breezy start.
Shane Long headed over another opportunity after Norwich goalkeeper Declan Rudd misjudged Dusan Tadic's deflected cross.
Norwich were more considered in their attacks than their direct hosts, but it proved successful too.
Their first chance was arguably their best of the half, as Jonny Howson out-fought Saints captain Jose Fonte for a bouncing ball but could only drag his shot wide when he had won sight of Maarten Stekelenburg's goal.
Both sides continued to exchange chances in an open, energetic game.
Dusan Tadic's nutmeg set Ryan Bertrand free, but his cross was driven straight at Rudd by James Ward-Prowse - before the Saints midfielder gifted Wes Hoolahan the ball, but Howson's ensuing cut-back flew behind his team-mates.
Southampton's control of the game increased as the half went one, along with their threat from set-pieces - Virgil van Dijk heading the pick of their opportunities just over.
But Norwich still carried their own threat and were somewhat unfortunate as striker Dieumerci Mbokani prodded two efforts off target in the box.
The hosts also owed plenty to Rudd, who rushed out to meet Long as he raced through - the goalkeeper turning the ball away from danger.
The game was threatening to settle into a stalemate during an even second half, until the 74th minute when Wanyama was sent off for his second late lunge of the game, and second booking.
His first-half tackle on Nathan Redmond justified the punishment. His second on Tettey convinced referee Mark Clattenburg to produce a red card.
Within two minutes, Norwich had the lead. The goal was made by Belgian international Odjidja-Ofoe, who glided through one challenge before teeing up Tettey, and he side-footed a wonderful finish into the top corner beyond Stekelenburg.
Koeman made changes to force the issue, even turning to the man he left out for disciplinary reasons, Sadio Mane - but it was not enough to prevent Norwich holding on for the victory.
TWEET OF THE MATCH
Excellent couple of weeks for @NorwichCityFC - 9 points from the last 12. Happy days. #OTBC - Simon Thomas
Declan Rudd: 7
Russell Martin: 6
Sebastien Bassong: 6
Ryan Bennett: 7
Robbie Brady: 7
Nathan Redmond: 6
Gary O'Neil: 7
Jonny Howson: 7
Alexander Tettey: 7
Wes Hoolahan: 7
Dieumerci Mbokani: 6
Cameron Jerome 6
Vadis Odjidja-Ofoe 8
Martin Olsson 6
Maarten Stekelenburg: 6
Cuco Martina: 6
Jose Fonte: 6
Virgil van Dijk: 6
Ryan Bertrand: 6
Steven Davis: 6
James Ward-Prowse: 6
Victor Wanyama: 5
Dusan Tadic: 6
Jordy Clasie: 6
Shane Long: 7
Sadio Mane 6
Gaston Ramirez 6
Harrison Reed 6
Vadis Odjidja-Ofoe - The Belgian midfielder had an immediate impact after coming off the bench, setting up the winning goal for Alex Tettey.
MOMENT OF THE MATCH
Odjidja-Ofoe had only been on the pitch 13 minutes when he picked out Tettey, who produced a left-footed finish into the top corner from just inside the area.
VIEW FROM THE BENCH
Alex Neil will be thrilled with the festive return from his Canaries side with nine points picked up from four games - they are unbeaten at home in their last five, including two successive clean sheets. Southampton, meanwhile, have won just twice in their last 17 on the road, losing 10. They have been beaten in six of their last eight games, which will be a major worry for Ronald Koeman.
MOAN OF THE MATCH
Sadio Mane, linked with a January move away from St Mary's, was dropped to the bench for disciplinary reasons after turning up late for a team meeting. He was introduced with 10 minutes remaining but could not rescue Saints.
WHO'S UP NEXT
Norwich v Manchester City (FA Cup, Saturday 9 January).
Southampton v Crystal Palace (FA Cup, Saturday 9 January).