Swansea City will be playing Premier League football next season after a thrilling play-off final at Wembley.
The Swans stormed into a 3-0 lead at half-time through Scott Sinclair (2) and Stephen Dobbie, but then found themselves fighting for their lives as Noel Hunt and Matt Mills pulled it back to 3-2.
But when Sinclair grabbed his hat-trick with his second penalty of the afternoon 10 minutes from time, the Swans were Premier League bound for the first time in their history.
Yes, rub your eyes, take another look . . . the Swans are a Premier League team. Brendan and the boys, you've done the city proud.
Swans boss Brendan Rodgers named the same team that beat Nottingham Forest in the play-off second-leg at the Liberty Stadium a fortnight ago.
With Neil Taylor suspended, Alan Tate
remained at left-back with Stephen Dobbie getting the nod ahead of Darren Pratley at the forward point of the three-man midfield. Pratley took his place on the bench along with young Jazz Richards.
Garry Monk also recovered from a stomach bug picked up earlier in the week to captain the side in their pursuit of Premier League football.
The big news for Reading was the return of winger Jimmy Kebe who has missed their last six matches with of a thigh injury.
Swansea City: Dorus de Vries, Angel Rangel, Alan Tate
, Garry Monk ©, Ashley Williams, Leon Britton, Joe Allen, Stephen Dobbie, Nathan Dyer, Scott Sinclair, Fabio Borini. Subs: Yves Ma-Kalambay, Darren Pratley, Mark Gower, Albert Serran, Luke Moore, Ashley Richards, Craig Beattie.
Reading: Adam Federici, Andy Griffin, Ian Harte, Zurab Khizanishvili, Jem Karacan, Matthew Mills ©, Mikele Leigertwood, Shane Long, Noel Hunt, Jobi McAnuff, Jimmy Kebe. Subs: Jay Tabb, Simon Church, Hal Robson-Kanu, Brian Howard, Shaun Cummings, Alex Pearce, Alex McCarthy.
Ref: P Dowd
There was a fantastic atmosphere at a packed Wembley as Swans MC Kevin Johns got the Jack Army going post-match on the pitch.
A huge 32Red Swans shirt made its way across the 40,000 Swans fans before the teams were read out and the countdown to kick-off really kicked in.
Reading gave Swansea an early scare as Dorus de Vries was forced to palm a Jimmy Kebe cross into a crowded area before clearing the danger.
After a nervy start, Leon Britton and Stephen Dobbie drove Swansea forward before Scott Sinclair was brought down on the edge of the area by Matt Mills.
Fabio Borini stepped up for the free-kick, but his effort flew over from 23 yards with four minutes gone.
As the Swans fans lifted the roof, Sinclair was brought down again by another dangerous tackle, this time from full-back Andy Griffin who picked up the first yellow card of the game.
Reading had targeted Jimmy Kebe as their main threat against Alan Tate
down the flanks as Ashley Williams had to be alert to clear another probing run.
With 12 minutes gone, there were another two yellow cards shown as Borini was booked for trying to block Adam Federici's kick and Reading's Zurab Khizanishvili for his reaction.
Reading were closing the spaces down well as Swansea's midfield struggled to gain control as Noel Hunt had a penalty appeal turned down for handball when his cross hit Garry Monk.
But it was Swansea who made the breakthrough in the 21st minute when Nathan Dyer was brought down by Khizanishvili. Referee Phil Dowd pointed straight to the spot and Scott Sinclair fired home his 25th of the season.
Two minutes later and the Swans were 2-0 up when Angel Rangel found Stephen Dobbie and the midfielder raced clear before pulling his cross back. Federici got a hand to it, but Sinclair was perfectly placed to fire home his second.
The Swans fans were in full voice now despite Hunt flashing a header just wide of de Vries near post with 30 minutes on the clock.
Reading had their third yellow card of the game in the 39th minute when Jobi McAnuff was penalised for a foul on Leon Britton.
And with 40 minutes gone the Swans were flying as they went further ahead. Dyer broke down the wing and when his cross was only cleared to the edge of the area, Stephen Dobbie arrived to fire a fine finish beyond Federici to make it 3-0.
As the celebrations continued in the black and white half of Wembley, the Swans were given a timely warning that they still had some work to do as Shane Long missed a glorious chance in the 45th minute, before de Vries pulled off a good save from Mikele Leigertwood.
But the half belonged to Swansea and Brendan Rodgers and his boys were just 45 minutes away from joining the elite in the Premier League.
Half-time: Swans 3 Reading 0
There were no changes at the start of the second-half, although Reading substitute Jay Tabb was shown a red card during the break for dissent.
Kebe continued to give Swansea problems down the right as Williams had to be alert to clear his dangerous cross at the expense of a corner.
Swansea cleared the first one, but Reading made the second one count with 49 minutes gone as Noel Hunt sneaked in at the front post to send a glancing header passed de Vries to make it 3-1.
Joe Allen found himself booked for a foul before Borini sent Dobbie racing clear on the counter-attack. Having weaved his way into the area, he fired wide before being replaced by Darren Pratley in the 56th minute.
And it was game on again two minutes later as Reading pulled another one back. Again it came from a corner as skipper Matt Mills got up well to head home and make it 3-2.
Swansea were rocking as Jem Karacan nearly grabbed the equaliser only for his shot to hit the post.
There was some respite when Sinclair was brought down 30 yards out, but Borini and Allen wasted the free-kick with 25 minutes remaining of a pulsating final.
Swansea had regained control with 20 minutes to go as Pratley made his presence felt in the middle of the park.
Five minutes later and both sides made a change with Simon Church coming on for Hunt and Mark Gower replacing the injured Britton.
The Swans had the chance to finally finish it off in the 80th minute when Griffin brought down Borini inside the area. Down pointed to the spot for the second time in the game and Sinclair stepped up to complete his hat-trick and give Swansea a 4-2 lead.
There was huge relief and celebration from the Swans fans.
Gower got booked for a foul on Kebe and Luke Moore replaced Joe Allen in the final minute.
Not that it mattered, little old Swansea were on their way to the Premier League.