There was a period early in the second half at Old Trafford on Wednesday night when it felt inevitable that Manchester United would turn the game on its head.
Marcus Rashford's deflected strike had cancelled out Neymar's early opener before the break and the hosts emerged from the interval on the attack. Anthony Martial blazed over when he should have scored. Edinson Cavani struck the bar. The red shirts kept pouring forwards.
In the end, though, Ole Gunnar Solskjaer's men were left to rue those missed chances. Victory would have sent them through as group winners, but a night that looked so promising ended in a 3-1 loss which puts their hopes of Champions League progression in jeopardy.
Solskjaer punished for Fred error
In truth, PSG might have been out of sight earlier had Fred not somehow escaped a red card for pressing his head into Leandro Paredes in the first half. Referee Daniele Orsato went over to check the pitchside monitor following a VAR check, but deemed the offence only worthy of a yellow.
The decision came as a big surprise and Fred found himself walking a disciplinary tightrope from then on. Soon after Rashford's equaliser, the Brazilian was involved in another coming together with Paredes. Replays showed his studs came down on his opposite number's boot, but it was Paredes who ended up yellow carded.
- Man Utd 1-3 PSG - Match report
- Champions League last 16: Draw, dates, teams
- Champions League news | Fixtures | Tables
The expectation was that Fred would be withdrawn at half-time given how his night was progressing. Manchester United had Nemanja Matic, Paul Pogba and Donny van de Beek in reserve, so Solskjaer was hardly short of options in central midfield.
But instead he sent Fred back out for the second half. And if that wasn't surprising enough, he was still on the pitch when the game was becoming stretched and the clock was ticking towards the 70th minute.
The challenge which eventually earned him his second yellow card actually looked like a fair one given Fred won the ball before making contact with Marco Verratti. But it was still unwise to go flying into the tackle given the circumstances - and even more unwise, on the part the man in the dugout, that he had not been taken off earlier.
Rashford scores but suffers injury
Thomas Tuchel described Rashford as "very annoying" earlier this week for his habit of scoring against Paris Saint-Germain and the 23-year-old proved an irritant to the French giants yet again at Old Trafford.
There was more than a hint of good fortune about his equaliser - his shot took a huge deflection off Abdou Diallo on its way into the net - but his overall performance was brimming with menace.
The 23-year-old found ample space on PSG's left flank, where full-back Diallo was often exposed, and his speed and directness unsettled the visitors on more than one occasion. Some of his crosses into the box were outstanding. His goal was his sixth in five Champions League appearances this season.
It was typical of Manchester United's night, however, that Rashford's contribution ended on a low note. Soon after Marquinhos had put PSG back in front, he could be seen gesturing to the bench having aggravated a shoulder injury. He came off for Paul Pogba moments later, blunting United's attack and leaving Solskjaer to sweat on his fitness for Saturday's clash with West Ham.
No stopping brilliant Neymar
How do you stop Neymar?
Aaron Wan-Bissaka did a fine job of it when Manchester United travelled to Paris in October and Scott McTominay seemed to be handling him well at Old Trafford in the first half, getting under his skin to the extent that the Brazilian had to be hauled down the tunnel by his team-mates at the break.
But Neymar had the final say, his quality ultimately proving too much - as it so often does. The 28-year-old took his first goal brilliantly, rifling home from an acute angle after a Kylian Mbappe effort deflected into his path, but it was his second, in the first minute of stoppage time, which killed the game and underlined just how special he is.
It started deep in PSG territory, with a dragback which took him away from his compatriot Alex Telles. He then left Bruno Fernandes in his wake, before skipping away from Harry Maguire. His pass to Mbappe was perfect, and seconds later he was in the right place at the right time to turn Rafinha's cut-back into the empty Manchester United net.
Sometimes there is no stopping him.
European hopes in the balance
Manchester United still sit second in Group H, in position to qualify as things stand, but they will head into the final round of fixtures knowing their place in the last-16 is now far from guaranteed.
That's partly because the Group H drama was not restricted to Old Trafford on Wednesday night. Over in Turkey in the earlier kick-off, RB Leipzig emerged 4-3 winners against Istanbul Basaksehir thanks to a stoppage-time winner from Alexander Sorloth.
That goal ensures they too moved to nine points ahead of Manchester United's trip to the Red Bull Arena next week. In the other game, PSG will be strong favourites to beat Istanbul Basakeshir at the Parc des Princes. Manchester United's assignment is far tougher.
Yes, they thrashed Julian Nagelsmann's men 5-0 at Old Trafford in October. But this time it is unlikely to be so straightforward. RB Leipzig have won all seven of their home games this season, including against PSG, and their run to last season's Champions League semi-finals included impressive victories over Tottenham and Atletico Madrid.
They will be out to claim the scalp of another European heavyweight next Tuesday. For Manchester United, events on Wednesday at Old Trafford mean another defeat in that game would end their Champions League journey for another year.