Match ends, Borussia Dortmund 1, Paris Saint Germain 1.
Paris St-Germain scraped through to the Champions League knockout phase after 17-year-old Warren Zaire-Emery's goal earned a priceless draw at already-qualified Borussia Dortmund.
With Newcastle and AC Milan ready to pounce on a slip-up by PSG, Dortmund led when Karim Adeyemi steered in.
But Zaire-Emery drilled home five minutes later and it was enough to put the French champions into the last 16.
PSG's spot was secured by Milan fighting back to win at Newcastle.
German side Dortmund finished top of Group F with 11 points, while PSG join them in the pot for Monday's draw after ending up with eight points.
PSG have long targeted winning the Champions League as a symbolic triumph of their transformation under Qatari ownership, and this result ensures their place in the knockout stages for a 12th successive season.
However, winning the trophy has continued to elude them. The nearest the Parisians have come to achieving their ultimate goal was four seasons ago when they lost to Bayern Munich in the 2020 final.
While they have been shorn of mercurially-talented pair Neymar and Lionel Messi this season, PSG still can rely on Kylian Mbappe to provide match-defining moments as they aim to finally win Europe's premier club competition.
Only an incredible sliding block from Dortmund defender Niklas Sule stopped Mbappe putting the French side ahead before the break, while Bradley Barcola hit the post and Randal Kolo Muani twice fired wide in one-on-ones with Dortmund keeper Gregor Kobel.
Dortmund also had chances through Marco Reus and Adeyemi in an entertaining first half which somehow remained goalless.
Adeyemi made amends for his glaring miss when he swept in Niclas Fullkrug's pass shortly after the restart and, with Newcastle beating Milan, PSG were on course to face a chastening group-stage exit.
But Mbappe's brilliance helped get them back level in Dortmund and ultimately keep their Champions League dream alive.
The 24-year-old France forward used his sharp movement and trickery to stretch the Dortmund defence, who could not clear their lines and allowed Zaire-Emery to fire in the equaliser.
Mbappe also had what could have been the winner - another run and precise finish - ruled out by the tightest of offside calls.
With news filtering through about Milan's fightback, the pace slowed down as both Dortmund and PSG saw out a draw which suited both teams.
Line-ups
B Dortmund
Formation 4-2-3-1
- 1Kobel
- 17WolfSubstituted forSchlotterbeckat 69'minutes
- 25Süle
- 15HummelsBooked at 57mins
- 5Bensebaïni
- 19Brandt
- 6ÖzcanSubstituted forSabitzerat 69'minutes
- 27AdeyemiSubstituted forReynaat 81'minutes
- 11Reus
- 43Bynoe-GittensSubstituted forMalenat 60'minutes
- 14FüllkrugSubstituted forHallerat 81'minutes
Substitutes
- 4Schlotterbeck
- 7Reyna
- 9Haller
- 20Sabitzer
- 21Malen
- 33Meyer
- 35Lotka
- 42Blank
- 45Bueno
PSG
Formation 3-4-2-1
- 99G Donnarumma
- 5MarquinhosBooked at 45mins
- 37Skriniar
- 21Hernández
- 2Hakimi
- 33Zaïre-Emery
- 17Vitinha
- 29BarcolaSubstituted forAsensioat 82'minutes
- 23Kolo MuaniSubstituted forSolerat 90+6'minutes
- 19Lee Kang-inSubstituted forUgarteat 68'minutes
- 7Mbappé
Substitutes
- 4Ugarte
- 11Asensio
- 15Danilo
- 26Mukiele
- 28Soler
- 30Letellier
- 80Tenas
- Referee:
- Glenn Nyberg
- Attendance:
- 81,365
Match Stats
- Possession
- Home41%
- Away59%
- Shots
- Home10
- Away18
- Shots on Target
- Home6
- Away6
- Corners
- Home4
- Away5
- Fouls
- Home13
- Away14
Live Text
Post update
Full Time
Second Half ends, Borussia Dortmund 1, Paris Saint Germain 1.
Substitution
Substitution, Paris Saint Germain. Carlos Soler replaces Randal Kolo Muani.
Post update
Corner, Paris Saint Germain. Conceded by Marco Reus.
Post update
Milan Skriniar (Paris Saint Germain) wins a free kick in the defensive half.
Post update
Foul by Giovanni Reyna (Borussia Dortmund).
Post update
Corner, Borussia Dortmund. Conceded by Lucas Hernández.
Post update
Foul by Warren Zaïre-Emery (Paris Saint Germain).
Post update
Ramy Bensebaïni (Borussia Dortmund) wins a free kick in the defensive half.
Post update
Attempt blocked. Warren Zaïre-Emery (Paris Saint Germain) right footed shot from outside the box is blocked. Assisted by Vitinha.
Post update
Offside, Borussia Dortmund. Sébastien Haller is caught offside.
Post update
Corner, Paris Saint Germain. Conceded by Mats Hummels.
Post update
Randal Kolo Muani (Paris Saint Germain) wins a free kick in the attacking half.
Post update
Foul by Sébastien Haller (Borussia Dortmund).
Substitution
Substitution, Paris Saint Germain. Marco Asensio replaces Bradley Barcola.
Post update
Delay over. They are ready to continue.
Substitution
Substitution, Borussia Dortmund. Sébastien Haller replaces Niclas Füllkrug.
Substitution
Substitution, Borussia Dortmund. Giovanni Reyna replaces Karim Adeyemi because of an injury.
Post update
Delay in match because of an injury Karim Adeyemi (Borussia Dortmund).
Post update
Attempt saved. Bradley Barcola (Paris Saint Germain) left footed shot from the left side of the box is saved in the bottom left corner. Assisted by Vitinha.
Comments
Join the conversation
Don't see them troubling Madrid, Bayern, Atleti.
Got away with a VAR decision which subsequently was confirmed to be wrong. If there is any justice no CL trophy this time around.
Because the further they go, the more their hopes and dreams grow.
Just makes the crushing disappointment all the more funnier when they inevitably get knocked out.
I'd give them a clear route through to the final if I could. To hopefully lose to a 98th minute injury time own goal.