The Republic of Ireland international shot straight at Aidan Davidson before giving them the lead, finding space to drill low past a diving Davidson.
He grabbed a second when he played in Dean Whitehead down the right and latched on to his cross to fire home.
Chris Iwelumo pulled one back when he capitalised on defensive uncertainty to score, but David Connolly wrapped it up with a fine 20-yard right-foot finish.
Colchester boss Geraint Williams:
"We bossed the game and had some great chances but we didn't take them and got punished at the other end," he said. "We deserved a point. We played some fantastic football in the second half and if we continue to play like that, the results will come.
"What we have learned in this division is that if you don't take your chances, you get punished."
Sunderland: Ward, Whitehead, Varga, Danny Collins, Nyatanga, Miller, Leadbitter (Kavanagh 83), Yorke, Wallace (Hysen 83), Brown (Connolly 69), Stephen Elliott.
Subs Not Used: Caldwell, Carson.
Booked: Brown.
Goals: Stephen Elliott 45, 53, Connolly 90.
Colchester: Davison, Halford, Baldwin, Brown, Barker, Duguid, Izzet, Jackson, McLeod (Jones 46), Cureton, Guy (Iwelumo 70).
Subs Not Used: White, Gerken, Richards.
Goals: Iwelumo 79.
Att: 25,197.
Ref: A Hall (W Midlands).