Zenit St Petersburg produced the biggest Europa League comeback in 33 years as they overturned a 4-0 first-leg deficit in astonishing fashion to stun Dinamo Minsk.
The Russian side were hammered in the first leg in Belarus and, despite fighting back to lead the second leg 2-0, looked to be heading out when Leandro Paredes was sent off with 18 minutes remaining.
But Zenit, who reached the last 16 in 2017-18, responded superbly as Russian World Cup hero Artem Dzyuba scored twice to level the scores at 4-4 on aggregate and take the tie to extra time.
Incredibly, there was still plenty more drama to come, as Zenit's hopes appeared to be dashed when Seidu Yahaya scored an away goal for Dinamo Minsk nine minutes into extra time, meaning they led 5-4 and Zenit's 10 men needed to score twice to progress.
Argentine forward Sebastian Driussi gave them hope with 11 minutes of extra time remaining, before Dzyuba - scorer of three goals in Russia's run to the World Cup quarter-finals - completed his hat-trick to put Zenit 6-5 up and on course for an astonishing victory.
In a game packed full of drama, there was still time for the hosts to score twice more. Robert Mak made it 7-1 on the night from the penalty spot, an award which led to the game's second red card, this time for Dinamo's Maksim Shvetsov.
And with 123 minutes on the clock, Mak completed the scoring to make it 8-1 on the night and 8-5 on aggregate.
The last time a team overturned a four-goal deficit in this competition - previously the Uefa Cup - was in 1985, when Real Madrid came back from 5-1 down against Borussia Monchengladbach to level the scores in the second leg and advance from their last-16 tie on away goals.
Zenit will now face Molde, managed by former Manchester United striker Ole Gunnar Solskjaer, in the play-off round after the Norwegians beat Scottish side Hibernian 3-0 on aggregate.
Line-ups
Zenit St Petersburg
- 99Lunev
- 2Anyukov
- 14Kuzyaev
- 5ParedesBooked at 72mins
- 15NabiullinSubstituted forZabolotnyat 59'minutes
- 33Azevedo JúniorSubstituted forDriussiat 61'minutes
- 21ErokhinSubstituted forMakat 102'minutes
- 16NoboaBooked at 11minsSubstituted forSmolnikovat 103'minutes
- 6Ivanovic
- 23Mevlja
- 22Dzyuba
Substitutes
- 1Lodygin
- 8Kranevitter
- 11Driussi
- 13Novo Neto
- 19Smolnikov
- 20Mak
- 29Zabolotny
Dinamo Minsk
- 30Gorbunov
- 13Rocha RodriguesSubstituted forGavrilovichat 92'minutes
- 3ShvetsovBooked at 120mins
- 4GalovicBooked at 116mins
- 18TreboticSubstituted forNavalovskiat 72'minutes
- 21IvanovSubstituted forMakasat 65'minutes
- 22BegunovBooked at 22mins
- 6Yahaya
- 81Korzun
- 23KhvashchinskiySubstituted forKaplenkoat 55'minutes
- 24Shitov
Substitutes
- 8Kaplenko
- 25Gavrilovich
- 27Makas
- 35Ignatovich
- 41Gurenko
- 77Antilevski
- 88Navalovski
- Referee:
- Sébastien Delferière
- Attendance:
- 220