Sunderland secured promotion to the Championship as strikes from Elliot Embleton and Ross Stewart gave them a 2-0 victory over Wycombe Wanderers in the League One play-off final on Saturday afternoon.
Having lost in the semi-finals of the play-offs last season, the Black Cats exorcised those demons as Embleton strode forward to fire in a well-hit shot that goalkeeper David Stockdale should have saved.
Wycombe piled on the pressure in the second half but it was Stewart who put his side's fans into dreamland with an accurate strike from the edge of the box.
Sunderland started on the front foot, with Alex Pritchard curling a free kick into the side-netting before Stewart scuppered another good opportunity.
Their dominance was rewarded in the 12th minute. Embleton powered forward from central midfield and smacked a thunderous shot straight at Wanderers goalkeeper Stockdale, who completely misjudged the flight of the ball and could only get a flailing arm close before it struck the back of the net.
Wycombe barely laid a glove on Sunderland during the opening 30 minutes, with Sam Vokes ballooning a header well wide after overpowering Lynden Gooch at the back stick in what was their best opportunity.
They did up the tempo at the start of the second half but Sunderland went closest again when Pritchard's inch-perfect cross was nodded wide by Stewart.
Bailey Wright then misjudged the flight of the ball and it fell for Vokes who couldn't sort his feet out, allowing Anthony Patterson to come out and block the shot.
Some frantic defending was needed from Sunderland throughout the second half to hold off Wycombe, who piled on the pressure but continued to fail to find the right opening.
They were caught out when Sunderland made it 2-0 to book their spot in the Championship. The brilliant Pritchard picked out Stewart, who kept his cool to finish beyond Stockdale.
It means Alex Neil's side return to the second tier after four seasons in League One, while Gareth Ainsworth's team will have to go again having been relegated from the Championship in 2020/21.
1. Sunderland (3-4-1-2)
GK: Anthony Patterson - 7/10 - Made a few good claims from Wycombe's lofty cross. Made himself big to deny Vokes.
CB: Luke O'Nien - 7/10 - Lined up against his former side. Solid enough and later moved into central midfield.
CB: Bailey Wright - 7/10 - Made a few good recoveries when dealing with the aerially threatening Vokes. Did give the Welshman a golden chance to score but got away with it.
CB: Danny Batth - 7/10 - Few nervy moments, mainly due to miscommunication with his teammates. Led from the front alongside his defensive colleagues as Wycombe pumped balls into the box.
RWB: Lynden Gooch - 6/10 - Steady on the right and made a few important interceptions.
CM: Elliot Embleton - 8/10 - Justified Neil's team selection as he charged forward unopposed to smash in the opener. Came off pretty early as Sunderland looked to regain control.
CM: Corry Evans - 8/10 - Used the ball pretty well in central midfield. Good headed deflection to divert a shot away from goal. Got through plenty of dirt work.
LWB: Dennis Cirkin - 6/10 - Picked up the game's first yellow card. Linked up nicely with Roberts on the left.
AM: Alex Pritchard - 9/10 - Started the game with fantastic energy and grabbed the assist for Embleton's strike. Got another late on by setting up Stewart. The best player on the pitch. Was also booked.
ST: Patrick Roberts - 7/10 - Caused Wycombe problems when drifting out wide. Could have made it 3-0 but shot just wide.
ST: Ross Stewart - 8/10 - Headed wide from Pritchard's great delivery. Made no mistake late on when he finished into the corner for 2-0.
SUB: Jack Clarke - 6/10 - Couple of nice pieces of wing play down the left. Could have made it 3-0 late on but denied by Stockdale.
SUB: Callum Doyle - N/A - On for Pritchard in the final ten minutes.
SUB: Nathan Broadhead - N/A - On to see out the last few minutes.
2. Wycombe (4-2-3-1)
GK: David Stockdale - 3/10 - Made a real mess of a shot that was hit straight at him by Embleton - it may have been moving but it should have been a simple save. Left rooted for the second.
RB: Jason McCarthy - 5/10 - Made a few galloping runs down the right.
CB: Anthony Stewart - 5/10 - Left hamstrung for the goal as his midfielders were caught out high up the pitch. Didn't get close enough to Stewart for the second goal.
CB: Ryan Tafazolli - 5/10 - Sent some long balls forward as Wycombe chased the game.
LB: Joe Jacobson - 6/10 - Made a few crosses which were easily dealt with. Great challenge denied Roberts the chance to shoot.
CM: Dominic Gape - 5/10 - Struggled alongside midfield partner Scowen whenever Sunderland's midfielders roamed into space.
CM: Josh Scowen - 5/10 - Important intervention to clear a dangerous Clarke cross.
RW: Garath McCleary - 4/10 - Whipped in a few crosses which didn't find their targets.
AM: Daryl Horgan - 4/10 - Created a chance but hooked before the hour.
LW: Jordan Obita - 4/10 - Didn't get many opportunities to run with the ball at his feet. Brought off with 25 minutes to go, having offered very little.
ST: Sam Vokes - 5/10 - Nodded his side's first chance high and wide. Couldn't sort his feet out when presented with a golden opportunity by Wright.
SUB: Lewis Wing - 4/10 - Came into central midfield but didn't have too many touches in over half an hour.
SUB: Brandon Hanlan - 3/10 - Went for glory instead of passing across goal and shot straight at Patterson.
SUB: Adebayo Akinfenwa - 5/10 - Came on for his final professional appearance. Just didn't get enough service.