Match ends, Royal Antwerp 3, Rangers 4.
Two goals in the final seven minutes earned Rangers victory in an astonishing Europa League last-32 epic against Royal Antwerp in Belgium.
Steven Gerrard's side led, and then equalised twice, in the first leg of the tie, before Borna Barisic's second penalty snatched the win with two minutes of regulation time remaining.
Joe Aribo and Ryan Kent also netted for the Scottish Premiership leaders, but injuries to James Tavernier and Kemar Roofe diluted the joy a little before next Thursday's second leg at Ibrox.
Still, the dramatic late triumph leaves Rangers well-placed to reach the last-16 of the Europa League for the second consecutive campaign and maintain Gerrard's impressive European record.
- Gerrard 'concern' as injuries mar win
- Podcast: 'This game has been ridiculous'
- 60 minutes of anarchy in Antwerp
- Re-live Rangers' staggering win
It is a sign of where Rangers are now that they arrived in Belgium with little trepidation, with only Bayer Leverkusen and Young Boys managing to defeat them in their previous 27 European ties.
And they were on the front foot early, and may even have had a penalty in the opening minutes for handball, but the game raged on amid a VAR check.
Tavernier tried to struggle on after an early injury, but the Rangers captain twice crumpled to the turf before being substituted midway through the half. Roofe would later limp off before the break.
Before his departure, Roofe stole into the box but could not get a clear shot at goal, then Alfredo Morelos beat the offside trap and forced the goalkeeper to block from close range.
And Rangers' positive play was eventually rewarded with the lead. Roofe chased a long ball and forced a defender to knock it back to goalkeeper Alireza Beiranvand, but he spilled and Morelos steered the ball to Aribo, who rifled home from outside the box.
Rangers had conceded just four times in their last 12 games. Now the gauntlet was laid down to Antwerp. And, within minutes, they issued their response when Felipe Avenatti headed a free-kick beyond Allan McGregor.
And with seconds to go before half-time, Rangers conceded a penalty. Lior Refaelov threw himself to the floor after Steven Davis lightly clipped the back of his foot, before picking himself up to score.
That was dramatic enough, but an even more frantic second half was to come.
Ritchie de Laet pulled the shirt of Morelos and, after the Bulgarian referee was advised to check the incident on the pitchside monitor, Rangers had a spot-kick of their own.
Barisic scored but, again, as Rangers went on the front foot they were sucker-punched at the back. Martin Hongla tried his luck from distance, and nestled the shot in the back of the visitors' net.
Rangers went again, and perhaps should have levelled when Ianis Hagi jabbed a near-post cross wide. But they kept pressing, and Kent took the ball past a defender and lashed in a fine finish to level with seven minutes to play.
Both sides had chances to win it. Replacement goalkeeper Ortwin de Wolf stretched out a leg to deny Kent, then McGregor did the same at the other end before Ryan Jack made a goal-line clearance.
And then it was a second spot-kick after Abdoulaye Seck handled Kent's shot, receiving a red card for his troubles. Barisic took a deep breath and scudded in his second of the night as time ran out.
Even then the action was not over, with Koji Miyoshi cracking a late effort off the post for the hosts. But Rangers survived for a win that should take them a long way towards a place in the last 16.
Man of the match - Alfredo Morelos
What did we learn?
Many aspects of Rangers' performance were positive. They were dealt a series of blows with early injuries and a controversial penalty leaving them trailing, but they bounced back to level. Even when they fell behind again they still looked the better team.
The lead and four away goals gives them a huge advantage now in their quest to reach the last 16.
- Rangers have only lost one of their past 40 matches across all competitions (W33 D6), with that lone defeat coming against St Mirren in the League Cup in December.
- The three goals they conceded was as many as in their previous 11 games combined across all competitions.
- Since the start of last season, only Morelos (12) has been directly involved in more Europa League goals for Rangers than Barisic (9 - 2 goals, 7 assists).
- This was the highest-scoring European game Antwerp have been involved in since September 1994, when they were beaten 5-2 at Newcastle in the Uefa Cup.
Rangers host Dundee United on Sunday (15:00 GMT) as they continue their Scottish Premiership campaign, before welcoming Antwerp to Ibrox four days later (18:00).
- 1Safar BeiranvandSubstituted forDe Wolfat 77'minutes
- 4SeckBooked at 88mins
- 31Le Marchand
- 2de LaetBooked at 58mins
- 30Ulineia Buta
- 16GerkensSubstituted forMiyoshiat 90+2'minutes
- 18HonglaBooked at 88minsSubstituted forGelinat 90+1'minutes
- 15BoyaSubstituted forVerstraeteat 69'minutes
- 94J Lukaku
- 11RefaelovSubstituted forAmpomahat 90+2'minutes
- 63Van Den Bosch
- 97De Wolf
- 2TavernierSubstituted forBalogunat 24'minutes
- 31BarisicBooked at 44mins
- 37ArfieldBooked at 64minsSubstituted forJackat 74'minutes
- 18KamaraSubstituted forHagiat 74'minutes
- 25RoofeSubstituted forKentat 45+5'minutesBooked at 53mins
- Georgi Kabakov
- Shots on Target
Second Half ends, Royal Antwerp 3, Rangers 4.
Corner, Rangers. Conceded by Nana Ampomah.
Leon Balogun (Rangers) wins a free kick on the right wing.
Foul by Jordan Lukaku (Royal Antwerp).
Borna Barisic (Rangers) wins a free kick on the left wing.
Foul by Aurélio Buta (Royal Antwerp).
Koji Miyoshi (Royal Antwerp) hits the right post with a left footed shot from outside the box.
Foul by Filip Helander (Rangers).
Felipe Avenatti (Royal Antwerp) wins a free kick in the attacking half.
Substitution, Royal Antwerp. Koji Miyoshi replaces Pieter Gerkens.
Substitution, Royal Antwerp. Nana Ampomah replaces Lior Refaelov.
Substitution, Royal Antwerp. Jeremy Gelin replaces Martin Hongla.
Goal! Royal Antwerp 3, Rangers 4. Borna Barisic (Rangers) converts the penalty with a left footed shot to the top right corner.
Martin Hongla (Royal Antwerp) is shown the yellow card.
Second yellow card to Abdoulaye Seck (Royal Antwerp) for hand ball.
Penalty conceded by Abdoulaye Seck (Royal Antwerp) with a hand ball in the penalty area.
Attempt blocked. Ryan Kent (Rangers) right footed shot from the centre of the box is blocked. Assisted by Alfredo Morelos.
Attempt blocked. Ritchie de Laet (Royal Antwerp) right footed shot from very close range is blocked.
Attempt saved. Abdoulaye Seck (Royal Antwerp) header from the right side of the six yard box is saved in the centre of the goal. Assisted by Lior Refaelov.