Match ends, Rangers 3, RB Leipzig 1.
Rangers' dream season in Europe will culminate in a Europa League final against Eintracht Frankfurt after they swept aside RB Leipzig on another emotionally charged and memorable night at Ibrox.
Trailing 1-0 from the first leg, Rangers turned the semi-final on its head within 25 minutes through goals from James Tavernier and Glen Kamara.
Christopher Nkunku's 32nd goal of the season levelled the tie again before John Lundstram shook Ibrox with 10 minutes left after sweeping home.
Leipzig, despite their talented squad, could find no answer in the closing stages amid a cauldron of noise as a depleted Rangers side completed their remarkable run from the play-off round to the final.
Giovanni van Bronckhorst's men will meet Eintracht Frankfurt in Seville on 18 May with a tantalising chance to win the club's first European trophy for 50 years and claim a place in next season's Champions League group stage.
- Rangers 'couldn't write better script'
- 'Are gobsmacking Rangers unstoppable in Europe?'
- Listen: Rangers 'must believe' for final
- Football Daily podcast: Ruthless Rangers reach final
When the full-time whistle arrived, the Rangers players looked on in utter disbelief at their incredible achievement, but it was a performance worthy of winning any European tie.
Using the emotion of Ibrox, as they have throughout the campaign, just days after the passing of club icon and kitman of 30 years Jimmy Bell, they stormed out the blocks and into a 2-0 lead despite the absence of key strikers Alfredo Morelos and Kemar Roofe.
Firstly, Kamara held up a long ball he had no right to retain, and offloaded to Ryan Kent who picked out Tavernier at the back post for his seventh goal of the Europa League campaign.
The fans behind the goal cascaded towards the pitch in sheer elation, but it got even better six minutes later when Kamara caressed a shot with his weaker foot into the back of the net.
Leipzig, a club with a turnover about six times that of Rangers, were completely rattled and should have fallen three goals down before the break as Joe Aribo sclaffed a volley in the air from five yards.
That came so close to capping a perfectly executed first-half display from Rangers, and after the break they showed the guts and determination that has characterised their run to the final.
After seeing Aribo and Ryan Jack limp off injured, they were picked apart by Angelino's delicious cross from the left and Nkunku's gorgeous first-time finish and the momentum seemed to have swung away from Van Bronckhorst's side.
But despite the Germans cranking up the pressure and legs tiring, Rangers somehow got themselves up the pitch.
The lively Kent ghosted past his man and hung a cross into the box which almost dropped in, and Lundstram was lurking to drill home the clearance for the winning goal to send Ibrox rocking from its foundations.
Fashion Sakala should have put it to bed in stoppage time when clean through, but it did not matter as Rangers saw out the final minutes in relative comfort having knocked the stuffing from Leipzig, who managed only two shots on target all night.
Man of the match - John Lundstram
What did we learn?
This was an astounding performance from Rangers. Away from home they parked the bus and made sure they came back to Ibrox with a chance, and they put in the perfect display in front of their own fans to finish the job.
This was not a backs-against-the-wall effort, they swarmed Leipzig and completely outplayed them for the first hour and, even with key players missing and forced off, they somehow got the job done.
This is a team that has gone to extra time against Celtic and Braga in the last month, played Motherwell with 10 men for over an hour, and gone toe-to-toe with Leipzig all with a squad stretched to its limit.
But somehow they keep coming up with the answers in Europe. It has been a superhuman effort.
You could have picked any player in a blue shirt for man of the match, but Lundstram's performance in defence and midfield was totemic and he popped up with the winning goal.
Kamara - not known for his attacking threat - also stepped up massively to create and score the first two goals, while Kent seems to just come alive on European nights.
They will not fear Frankfurt in the final having already taken down Borussia Dortmund and now Leipzig, and Van Bronckhorst has shown he can adapt the team's game plan for all different types of opponents.
What a thrill it has been for them, and now there is one final job.
What they said
Rangers captain James Tavernier on BT Sport: "We wanted to do it for Jimmy. He will be looking down proud of us. It's unbelievable. Towards the end Lunny [John Lundstram] came up with the goods. A European final, it's what you dream of.
"We'll go there [Seville] full of confidence. Frankfurt got there for a reason, but it's one game and we'll fully back ourselves. We're in this to win it. We want to make all the fans proud."
What the stats say
- RB Leipzig are only the fifth side in the Europa League since 2009-10 to be eliminated in the semi-finals despite winning the first leg after Benfica in 2010-11, Sporting Lisbon in 2011-12, Fenerbahce in 2012-13 and Villarreal in 2015-16.
- Giovanni van Bronckhorst has become the first Dutch manager to reach the final of the Uefa Cup/Europa League in charge of a non-Dutch side since Dick Advocaat in 2008, whose Zenit St Petersburg side faced Rangers in that year's final, winning 2-0.
- RB Leipzig have now lost on each of their previous two visits to face Scottish sides in European club competition (exc. qualifiers); it is the first time the German side have lost on each of their first two such visits to sides from a specific nation.
- James Tavernier has now scored seven goals in the Europa League this season; the outright most by a Rangers player in a single season in European club competition. Indeed, he is also the third Englishman to score at least 10 goals in the Europa League (excluding qualifiers), with only Jermain Defoe and Harry Kane scoring more (both 11).
- John Lundstram scored his second Europa League goal of the season in 13 appearances, with both coming against German opposition (also against Borussia Dortmund). In the Scottish Premiership this season, he has only scored once in 26 games.
- 6GoldsonBooked at 31mins
- 3BasseyBooked at 26mins
- 31BarisicBooked at 43mins
- 23WrightSubstituted forArfieldat 59'minutes
- 8JackSubstituted forBalogunat 59'minutes
- 17Ayodele-AriboSubstituted forSakalaat 45+3'minutes
- 44KamplBooked at 52mins
- 3AngelinoSubstituted forHalstenbergat 81'minutes
- 25OlmoSubstituted forSzoboszlaiat 62'minutes
- 9PoulsenSubstituted forAndré Silvaat 82'minutes
- 33André Silva
- 38Novoa Ramos
- Artur Manuel Soares Dias
- Shots on Target
Second Half ends, Rangers 3, RB Leipzig 1.
Attempt blocked. Benjamin Henrichs (RB Leipzig) right footed shot from the left side of the box is blocked. Assisted by Christopher Nkunku.
Corner, RB Leipzig. Conceded by Ryan Kent.
Offside, Rangers. John Lundstram tries a through ball, but Fashion Sakala is caught offside.
Marcel Halstenberg (RB Leipzig) wins a free kick in the defensive half.
Foul by Fashion Sakala (Rangers).
Attempt missed. Josko Gvardiol (RB Leipzig) header from the right side of the six yard box is too high. Assisted by Dominik Szoboszlai with a cross following a corner.
Corner, RB Leipzig. Conceded by James Tavernier.
Substitution, RB Leipzig. André Silva replaces Yussuf Poulsen.
Substitution, RB Leipzig. Marcel Halstenberg replaces Angeliño.
Goal! Rangers 3, RB Leipzig 1. John Lundstram (Rangers) left footed shot from the centre of the box to the bottom left corner following a set piece situation.
Foul by Josko Gvardiol (RB Leipzig).
Fashion Sakala (Rangers) wins a free kick on the right wing.
Offside, Rangers. James Tavernier tries a through ball, but Fashion Sakala is caught offside.
Corner, Rangers. Conceded by Konrad Laimer.
Foul by Kevin Kampl (RB Leipzig).
Glen Kamara (Rangers) wins a free kick in the defensive half.
Goal! Rangers 2, RB Leipzig 1. Christopher Nkunku (RB Leipzig) right footed shot from the centre of the box to the top right corner. Assisted by Angeliño with a cross.
Attempt saved. Konrad Laimer (RB Leipzig) left footed shot from the centre of the box is saved in the bottom right corner. Assisted by Christopher Nkunku.