Rangers earned an incredible first-leg victory at Borussia Dortmund to put themselves firmly in the driving seat for a Europa League last-16 place.
The visitors stunned the German giants when James Tavernier's penalty was followed by Alfredo Morelos' tap-in.
John Lundstram's fantastic strike made it three, but Jude Bellingham replied instantly with a fine drive of his own.
Dan-Axel Zagadou's own-goal restored the three-goal lead before Raphael Guerreiro gave Dortmund a lifeline.
The game's first five goals came in an astonishing 16-minute spell across the end of the first half and the start of the second period, as Rangers continually sliced through a fragile Dortmund side who currently sit second in the Bundesliga.
Despite there being only 10,000 fans in attendance because of Covid restrictions inside the iconic cauldron of the Signal Iduna Park, the home crowd made their feelings clear as the pocket of delirious travelling fans celebrated throughout the game and on after the final whistle.
The return leg of the play-off knockout round tie will take place at Ibrox next Thursday.
The absence of 21-year-old striker Erling Haaland, who has 23 club goals in 20 games this term, coupled with the subdued home crowd would have provided Giovanni van Bronckhorst's men and their travelling following with crumbs of positivity for what was expected to be a daunting trip to Dortmund.
But even without their in-demand striker, the Bundesliga side's starting line-up was still littered with top-level European talent.
The attacking trio of captain Marco Reus, Julian Brandt and England's teenage sensation Bellingham, who were all playing behind Dutch international striker Donyell Malen, highlighted the attacking power the hosts possessed.
But it was the Scottish visitors, who settled quickly at the Signal Iduna Park, asking the early questions.
Van Bronckhorst's men were composed in possession and very nearly had a deserved lead when Ryan Kent slipped in Borna Barisic on the left of the box, but the Croatian's low finish was saved by the foot of Dortmund keeper Gregor Kobel.
However, Rangers' impressive opening was almost undone with slack defending when a home corner found Zagadou free, but the defender failed to make a clean enough connection with his downward header.
That missed opportunity seemed to briefly spark life into Dortmund, who saw a sweeping passing move end with Reus nicking the ball wide when leaving it for Malen was the better option.
But Rangers survived to bag two goals in a sensational three-minute spell which stunned the home crowd. Tavernier started it off as he sent Kobel the wrong way with a well-taken penalty after a VAR check spotted a clear handball in the box from Zagadou.
And it was two moments later when Joe Aribo flicked on Tavernier's corner, leaving Morelos to tuck the ball away at the back post.
The manic nature of the game would continue into the second half as outstanding work from Kent on the left helped tee-up Lundstram, who wrapped his left foot around the ball to add a stunning third.
Dortmund raced up the other end in a breathless start to the half to reduce the deficit when Bellingham bent in a fine effort of his own, but Rangers' remarkable lead was back to three in as many minutes.
Aribo slipped in Morelos on the left, who had a strike that was trailing wide. However, it took a nick off Zagadou and rolled into an empty net. The goal was momentarily ruled out, but a quick VAR review saw no issue with it.
Rangers continued to trouble a weak backline, with World Cup-winning centre-back Mats Hummels at the heart of it, as Aribo's fierce strike whistled past the far post.
But on a night of fine strikes, it was Dortmund who had the last say when Guerreiro's dipping effort left Allan McGregor, making his 100th European appearance, rooted to the spot.
Man of the match - Ryan Jack
It feels cruel to not award the prize to an attacking Rangers player, but Ryan Jack (left) delivered a stunning midfield display, winning possession back more times (10) than any other team-mate while making the most accurate passes (38)What did we learn?
That humbling Old Firm derby defeat seems a long time ago now, doesn't it?
In the four games since, Rangers have roared to four consecutive victories, but this trumps the lot and sits high in the list of all-time European victories by any Scottish club.
The trip to Dortmund was only Van Bronckhorst's third European game in charge of Rangers, and comparisons have been raised between the Dutchman and previous manager Steven Gerrard. But Van Bronckhorst has shown he can also drill a side that can mix it with Europe's big boys.
Each individual was superb for the Ibrox boss, but both Jack and Morelos highlighted their immense importance.
The only negative the Dutchman would scrape the barrel to find is the second Dortmund goal. If his resolute backline could have held out for another 10 minutes, the tie may have already been beyond the Bundesliga outfit.
With the attacking talent at the German side's disposal, you would not rule them out. And would you be at all surprised to see Haaland's return date coincide with next Thursday's return leg?
What the stats say
Borussia Dortmund conceded four goals in a home European match for only the third time in their history, also doing so in November 1964 vs Man Utd (lost 6-1) and November 2016 vs Legia Warsaw (won 8-4).In the Europa League (since 2009-10), only one side has ever won the first leg of a knockout tie by 2+ goals away from home and then not gone on to qualify: Real Betis vs Sevilla in 2013-14 (won 2-0 first leg, lost 2-0 second leg, lost on pens).Borussia Dortmund have conceded 4+ goals in consecutive home games in all competitions (2-5 vs Bayer Leverkusen, 2-4 tonight) for the first time since May/June 1983 (4-4 vs Bayern Munich, 4-6 vs Borussia Mönchengladbach).Rangers ended a run of eight away European matches in Germany without a win (D1 L7), with this their first since a 2-1 win over Bayer Leverkusen in the Uefa Cup in October 1998, a match which saw current manager Giovanni van Bronckhorst score the opening goal for the Gers.Alfredo Morelos became the all-time leading scorer for Rangers in major Uefa European competition (the competitions: European Cup, Champions League, Cup Winners' Cup, UEFA Cup and Europa League) with 14 goals, overtaking Ralph Brand's record of 13 goals between 1960 and 1964. All four of James Tavernier's Europa League goals have been scored from the penalty spot - his opener was his eighth goal of the season for Rangers in all competitions, with only Morelos (16) and Kemar Roofe (11) scoring more. Before Van Bronckhorst's arrival this season, Morelos had scored six goals in 19 appearances in all competitions for Rangers - under the Dutchman, he has scored 10 times in 12 games, twice as many as any other player in that time.What's next?
Rangers turn their attention to the Scottish Premiership title race on Sunday as they go to Dundee United (12:00 GMT) before next Thursday's second leg (20:00) with Dortmund.
Player of the match
KentRyan Kent
Borussia Dortmund
Squad number22Player nameBellingham
Squad number13Player nameRaphael Guerreiro
Squad number11Player nameReus
Squad number21Player nameMalen
Squad number8Player nameDahoud
Squad number19Player nameBrandt
Squad number7Player nameReyna
Squad number15Player nameHummels
Squad number1Player nameKobel
Squad number18Player nameMoukoko
Squad number16Player nameAkanji
Squad number14Player nameSchulz
Squad number27Player nameTigges
Squad number20Player nameReinier
Squad number5Player nameZagadou
Squad number28Player nameWitsel
Rangers
Squad number14Player nameKent
Squad number20Player nameMorelos
Squad number4Player nameLundstram
Squad number8Player nameJack
Squad number3Player nameBassey
Squad number17Player nameAyodele-Aribo
Squad number37Player nameArfield
Squad number2Player nameTavernier
Squad number16Player nameRamsey
Squad number6Player nameGoldson
Squad number31Player nameBarisic
Squad number1Player nameMcGregor
Squad number19Player nameSands
Squad number18Player nameKamara
Squad number23Player nameWright
Line-ups
B Dortmund
Formation 4-2-3-1
1Kobel
16Akanji15Hummels5Zagadou13Guerreiro
8Dahoud28Witsel
19Brandt11Reus22Bellingham
21Malen
1Kobel16AkanjiSubstituted forSchulzat 55'minutes15Hummels5ZagadouBooked at 73mins13Guerreiro8Dahoud28WitselSubstituted forReynaat 45'minutes19BrandtSubstituted forMoukokoat 45'minutes11ReusSubstituted forCarvalhoat 82'minutes22Bellingham21MalenSubstituted forTiggesat 68'minutesSubstitutes
7Reyna10T Hazard14Schulz18Moukoko20Carvalho25Unbehaun27Tigges30Passlack34Pongracic35HitzRangers
Formation 4-2-3-1
1McGregor
2Tavernier6Goldson3Bassey31Barisic
8Jack4Lundstram
37Arfield17Ayodele-Aribo14Kent
20Morelos
1McGregorBooked at 79mins2Tavernier6Goldson3Bassey31Barisic8JackSubstituted forKamaraat 86'minutes4Lundstram37ArfieldSubstituted forSandsat 66'minutes17Ayodele-AriboSubstituted forRamseyat 86'minutes14Kent20MorelosSubstituted forWrightat 90+5'minutesSubstitutes
9Diallo10Davis16Ramsey18Kamara19Sands23Wright28McCrorie43King44HogarthLive Text
Match ends, Borussia Dortmund 2, Rangers 4.
Second Half ends, Borussia Dortmund 2, Rangers 4.
Attempt missed. Mats Hummels (Borussia Dortmund) right footed shot from the right side of the box misses to the right.
Substitution, Rangers. Scott Wright replaces Alfredo Morelos.
Attempt blocked. Nico Schulz (Borussia Dortmund) right footed shot from the left side of the box is blocked.
Attempt missed. Jude Bellingham (Borussia Dortmund) right footed shot from outside the box is high and wide to the right. Assisted by Reinier.
Foul by Giovanni Reyna (Borussia Dortmund).
Borna Barisic (Rangers) wins a free kick in the defensive half.
Foul by Giovanni Reyna (Borussia Dortmund).
Borna Barisic (Rangers) wins a free kick in the defensive half.
Substitution, Rangers. Glen Kamara replaces Ryan Jack.
Substitution, Rangers. Aaron Ramsey replaces Joe Ayodele-Aribo.
Foul by Youssoufa Moukoko (Borussia Dortmund).
Connor Goldson (Rangers) wins a free kick in the defensive half.
Substitution, Borussia Dortmund. Reinier replaces Marco Reus.
Goal! Borussia Dortmund 2, Rangers 4. Raphael Guerreiro (Borussia Dortmund) left footed shot from outside the box to the top left corner. Assisted by Jude Bellingham.
Allan McGregor (Rangers) is shown the yellow card.
Attempt blocked. Borna Barisic (Rangers) left footed shot from outside the box is blocked.
Dan-Axel Zagadou (Borussia Dortmund) is shown the yellow card for a bad foul.
Foul by Dan-Axel Zagadou (Borussia Dortmund).