Patrick Roberts' injury-time goal booked Sunderland a Wembley play-off final date as the Black Cats saw off Sheffield Wednesday at Hillsborough. Alex Neil's side will take on Wycombe Wanderers in the final a week on Saturday.
But it was a close-run thing in South Yorkshire, as the Black Cats saw their single-goal first leg lead snatched away 15 minutes from time when Lee Gregory put the Owls in front - and levelled the tie on aggregate. The game looked destined for extra-time but the officials added ten minutes' stoppage time, and Sunderland staged another of their late, late shows.
Patrick Roberts scored four minutes into added time to level the game on the night and put Sunderland 2-1 in front of aggregate to silence the home supporters. Sunderland saw out the final minutes to stretch their unbeaten run to 15 games, and earn their fourth Wembley appearance in four seasons.
READ NEXT: When is the League One play-off final? All the details and how to watch
Neil named an unchanged side, keeping faith with the same side that started Friday's first leg at the Stadium of Light. But on-loan Everton striker Nathan Broadhead - who missed out on Friday through injury - was passed fit, and he was included amongst the substitutes.
Owls boss Darren Moore made two changes, bringing in Josh Windass and Jack Hunt in place of Saido Berahino and Liam Palmer. With a first leg deficit to claw back, the onus was on Sheffield Wednesday to come out and attack and - aside from a couple of half-chances for Sunderland - the hosts took up the challenge.
It needed an important intervention from Bailey Wright to prevent Gregory getting a shot on goal early on, while Jordan Storey headed wide from a corner, and Windass saw a couple of efforts blocked in quick succession. George Byers tried an acrobatic overhead kick which Anthony Patterson dealt with comfortably on the line, and Harlee Dean headed over from a set-piece.
It was all one-way traffic, however, with Danny Batth heading over the bar from an Alex Pritchard free-kick, while Jack Clarke saw a shot blocked. Cirkin and Clarke saw shots blocked early in the second half, with Sunderland's first on-target effort coming on the hour when Roberts sent a shot into the arms of Bailey Peacock-Farrell from inside the area on the right.
And a couple of minutes later, it took an excellent block from a defender to prevent Roberts firing Sunderland in front from a tight angle to the right of goal. Sunderland had a lucky escape when Windass whipped a dangerous low cross into the box from the right and it hit Lynden Gooch, with the ball dribbling a foot wide of the left-hand post.
From the resulting corner, the ball came to Marvin Johnson and his long-range volley was nodded goalwards by Sam Hutchinson but Patterson made the save. But Wednesday took the lead on the night and levelled the tie on aggregate in the 74th minute.
Johnson did brilliantly to get to the byline on the left and he cut the ball back for Gregory, who had got in front of Batth, to prod home from close range. That goal meant Sunderland had to be more ambitious and they finally got their reward in injury-time when Clarke's brilliant run saw him set up Roberts to score from close range, sending the 2,000 travelling fans behind that goal wild.
How they lined up
Sheffield Wednesday: Peacock-Farrell, Storey, Dean, Hutchinson (Palmer 70), Hunt (Mendez-Laing 70), Byers (Berahino 90+5), Luongo, Johnson, Bannan, Windass (Paterson 77), Gregory. Subs not used: Wildsmith, Dunkley, Kamberi
Booked: Byers, Bannan, Dean
Sunderland: Patterson, Gooch, Wright, Batth, Cirkin, O'Nien, Evans, Roberts (Broadhead 90+7), Pritchard (Matete 90+7), Clarke (Doyle 90+8), Stewart. Subs not used: Hoffmann, Embleton, Neil, Hume
Booked: Stewart, Matete
Referee: James Linington (Newport)
Attendance: 32,978
For the latest Sunderland news direct to your inbox, go here to sign up to our free newsletter