Defender Sebastien Bassong stretched out a leg to poke Norwich into an eighth-minute lead and Anthony Pilkington made it 2-0 after 37 minutes, calmly cutting in from the left and burying a shot low into the corner.
Sunderland halved the deficit when Craig Gardner's shot flew into the bottom corner of Mark Bunn's goal a minute before halftime and the strike transformed the match.
Norwich were forced to hang on for long periods in the second period as Sunderland piled on the pressure.
Craig Gardner struck the base of the post with a free-kick and Matt Kilgallon somehow failed to turn in the rebound, scooping his effort over the bar.
Danny Rose forced Bunn into a sharp save and Connor Wickham thought he had equalised with 15 minutes to go after Bunn spilled Rose's powerful volley to his feet but his celebrations were curtailed by an offside flag.
Norwich had several other escapes but showed great defensive resolve to protect the three points and move up a place to 12th in the table on 19 points, the same as Liverpool.
"We had to dig deep but that was out third game in a week with the same players so I'm delighted," Norwich manager Chris Hughton told Sky Sports.
Defeat left Sunderland just one place and one point above the relegation zone after a worrying slide in form in which they have won just two of their last 22 league matches dating back to last season.
"If we show the same spirit that we showed in the second half for the rest of the season we'll be fine but if we show the tension we showed in the first half it could be a tough battle," Sunderland manager Martin O'Neill said.