Sunderland opened their home programme in the Coco-Cola Championship with a hard-earned 3-1 victory over a well-organised Crewe side.
But all the goalscoring problems of last season were again evident as Sunderland squandered several excellent chances before substitute Stephen Elliott gave the scoreline a more realistic look.
Carl Robinson gave the Black Cats an early lead only for Mark Rivers to equalise against the run of play just before half-time.
Marcus Stewart fired Sunderland back into the lead midway through the second period and Elliott killed off Crewe's hopes of another equaliser with a well-taken last-gasp goal.
Crewe almost scored twice before Robinson gave the Black Cats an 11th minute lead, rifling home a low drive through a ruck of players after Stephen Foster headed out Liam Lawrence's free-kick.
Only a brilliant last-ditch tackle by Gary Breen and an outstanding save by Thomas Myhre from Dean Ashton had denied the Railwaymen the early advantage.
Stewart should have put Sunderland further ahead, heading past the post, but Jeff Whitley was guilty of a dreadful miss when failing to hit the target from six yards.
The Black Cats were made to pay for their woeful finishing in the 43rd minute when Rivers converted Ashton's right-wing centre.
Only a brilliant save from Myhre prevented Ashton giving Crewe the lead on the stroke of half-time but Sunderland regained the initiative only for Stewart and Kyle to miss from six yards with the goal at their mercy.
But they were finally rewarded in the 67th minute when Stewart finished off Kyle's left wing centre and in the last minute Elliott raced clear from Stephen Wright's quickly taken throw in and slipped the ball past Ben Williams.