Finn Azaz registered his 10th goal of the season for Southampton as the Saints moved into the Championship play-off places for the first time since the opening weekend.
Azaz, a likely started for the Republic of Ireland in next week's European World Cup semi-final play-off against Czechia, maintained his fine form this season to move his goal tally into double digits.
The 25-year-old, who has featured in all but two of Saints’ 38 league games, pounced on a quickly taken throw-in during the first half to slam home the only goal of the match at St Mary's.
Republic of Ireland international manager Heimir Halgrimmsson will also be pleased to see that defender Ryan Manning, who has half a dozen goals himself this season, played the full 90 minutes at left-back.
Winger Tony Springett, who has represented the Republic of Ireland at both Under-18 and U21 level, was an unused substitute for Norwich.
Southampton had goalkeeper Daniel Peretz to thank for the three points – and a 13th game without defeat – after a season-best seven saves, including a sensational double-stop in the second half.
The Canaries are now nine points adrift of the top six as their promotion hopes hang by a thread, despite 11 wins in their last 14 matches.
A cagey start was punctuated by a pair of strong saves at either end by Peretz and then Vladan Kovacevic.
Southampton’s Israeli goalkeeper Peretz smartly got down to his right to deny a thumping effort from Anis Ben Slimane.
And then Norwich’s shot-stopper Kovacevic parried away James Bree’s sweetly struck half-volley.
Sam Edozie had put the rebound in after that chance, only to see the offside flag go up against Azaz but less than a minute later Saints had the ball in the back of the net for real.
Bree quickly took a throw-in before the Canaries could reset, Kyle Larin nodded on before Azaz latched on to crash into the roof of the net, the first goal the visitors had shipped away from Carrow Road since the end of January.
Norwich have not won after conceding first on the road this season but were a whisker away as Mathias Kvistgaarden could not get a toe to Paris Maghoma’s wicked cross from the right.
Peretz was forced into another save 12 minutes into the second half when he denied a snapshot from Slimane.
If that had been a regulation save, his low dive to keep out Kenny McLean’s stinging drive was far from it, as the visitors looked the more likely to score the second goal of the match.
The on-loan Bayern Munich goalkeeper outdid himself again with a double save to deny Ali Ahmed and then Kellen Fisher from point-blank range.
Substitute Shea Charles almost killed off the match, but his low bottom-corner-bound shot was pushed away by Kovacevic.
Norwich almost had a 98th-minute equaliser but Jack Stephens’ inadvertent foot towards his own goal came back off the crossbar, before Peretz made one last stunning save to keep out Ruairi McConville.