PSG could have been on the brink of elimination from Group H with a defeat at Old Trafford but Neymar put last season's runners-up ahead in the sixth minute and the world's most expensive player sealed their victory in stoppage time.
Neymar's brace helped Paris Saint-Germain to a vital 3-1 win over Manchester United that took the French club to within touching distance of the Champions League last 16.
Also in Wednesday matches, Borussia Dortmund secured their qualification for the next round and Olivier Giroud scored all four goals in Chelsea's 4-0 thumping of Sevilla.
Marcus Rashford's shot went in off Danilo Pereira to bring United level in the first half, and Edinson Cavani hit the bar against his former club.
Marquinhos prodded the French champions back in front midway through the second half and the game appeared up for Ole Gunnar Solskjaer's side when Fred was sent off for a second yellow, having been fortunate to escape a red card early on.
Neymar's late clincher could prove crucial as it gives PSG the head-to-head advantage following United's 2-1 win in Paris in October.
"We had some big chances, big moments and that's the difference when you get to the big games," said Solskjaer.
There is a three-way tie on nine points at the top of the group with RB Leipzig right in contention after Norwegian striker Alexander Sorloth scored in injury time to give them a 4-3 victory at Istanbul Basaksehir.
Irfan Can Kahveci's superb hat-trick looked to have rescued a draw for Basaksehir as they came back from 3-1 down to draw level. Yussuf Poulsen, Nordi Mukiele and Dani Olmo also scored for Leipzig.
It all means PSG now need only draw at home to Basaksehir next week to qualify.
"We have almost qualified, which means we have not qualified yet. That is the reality. Being almost pregnant does not mean you are pregnant," said PSG coach Thomas Tuchel.
United also only require a point when they visit Leipzig, but will be out if they lose, while the Germans would in that case go through.
Dortmund secured their progress after a 1-1 draw at home to Lazio in Group F, despite losing Erling Braut Haaland to a leg injury.
Raphael Guerreiro put the Germans in front but Ciro Immobile's penalty against his old side brought Lazio level.
Lazio will join Dortmund in the next round if they avoid defeat against Club Brugge next week.
The Belgians are two points back and still in contention after beating Zenit Saint-Petersburg 3-0, with teenage Belgian international Charles De Ketelaere putting them ahead, Hans Vanaken adding a penalty and Noa Lang also scoring.
'Amazing solo performance' by Giroud
The performance of the evening came from Giroud, as the France striker scored all four goals in Chelsea's 4-0 win away to Sevilla.
On just his second start this season, Giroud produced two lovely finishes before heading in to make it 3-0 and then winning and converting a late penalty.
The 34-year-old is the oldest player to score a hat-trick in the competition since Hungarian great Ferenc Puskas in 1965 for Real Madrid against Feyenoord.
Both teams were already through but the win allowed Chelsea to secure top spot in Group E.
"Amazing solo performance from Olivier. Delighted with him, delighted with the team," Chelsea manager Frank Lampard, the last Chelsea player to score four goals in a game in 2010, told BT Sport.
In the same group, Marcus Berg's goal gave Krasnodar a 1-0 win over Rennes, meaning the Russians will play in the Europa League in the new year.
Frappart history, Ronaldo reaches 750
History was made in Turin as France's Stephanie Frappart became the first woman to referee a men's Champions League game when Juventus beat Dynamo Kiev 3-0.
The game was also notable for Cristiano Ronaldo scoring his 750th career goal, his record-extending 132nd in the Champions League.
Federico Chiesa and Alvaro Morata also scored for Juve, who had already qualified from Group G before the game, along with Barcelona.
The Catalans kept up their perfect record and stayed on course to win the group by beating Ferencvaros 3-0 in Budapest without the rested Lionel Messi. Antoine Griezmann and Martin Braithwaite netted before Ousmane Dembele converted a penalty.