The home side had the better of the early stages with Damien Francis forcing Mart Poom into an impressive save with a long-range drive.
Midway through the first half, Jeff Whitley fired wide for the visitors before Marcus Stewart hit the outside of Robert Green's post with a diving header.
Peter Crouch missed a good chance before the Canaries went ahead in the 33rd minute.
Crouch headed Paul McVeigh's corner back across the penalty area and Francis hit a left-foot drive from ten yards that beat Poom's despairing dive to his right.
In the first three minutes of the second half, Green saved a shot from Stewart and Poom was at full stretch to deny McVeigh.
There was a double let off for the home side when Kevin Kyle headed wide from seven yards when unchallenged and then headed the ball against the crossbar.
In the 70th minute, Sunderland went down to ten men when John Oster was sent off for a foul that left Adam Drury needing treatment.
Julio Arca brought a save from Green in the closing stages but the home side hung on to win.
Norwich: Green, Edworthy, Mackay, Fleming, Drury, Harper, Francis, Holt, McVeigh, Huckerby, Crouch. Subs: Lewis, Mulryne, Jarvis, Roberts, Rivers.
Sunderland: Poom, Williams, Breen, McCartney, Arca, Oster, Whitley, Healy, Tommy Smith, Stewart, Kyle. Subs: Ingham, Clark, Proctor, Quinn, Bjorklund.
Referee: G Poll (Hertfordshire).