PSG started the day 15 points clear with six games left and so knew they could clinch their eighth Ligue 1 crown in 10 years if second-placed Marseille slipped up.
Mauricio Pochettino’s side got the result they needed, brushing aside struggling Angers despite being without the injured Lionel Messi and the suspended Neymar.
Kylian Mbappe put PSG in front as Ligue 1’s leading scorer notched his 22nd of the season just before the half-hour mark at the Stade Raymond Kopa.
Sergio Ramos then marked a rare appearance by doubling the lead in first-half stoppage time when he headed in Angel di Maria’s cross, and his central defensive colleague Marquinhos added a late third.
However PSG, who had young midfielder Edouard Michut sent off in stoppage time, were made to wait for the record-equalling 10th French title in their history as Amine Harit’s strike gave Marseille victory at the Velodrome.
OM came from behind twice against Nantes through Dimitri Payet penalties before Harit struck in the 75th minute to make it 3-2 and secure a precious win for Jorge Sampaoli’s side as they chase Champions League qualification.
PSG remain 15 points clear with just 15 points left to play for and also boast a far superior goal difference.
They will be confirmed champions on Saturday with a point at home to Lens.
“It is really important for us to win the championship and I hope we can do it on Saturday,” Pochettino told broadcaster Canal Plus.
A 10th title will see them equal the record set by the Saint-Etienne side of Michel Platini when they won their last championship in 1981.
– Monaco surge into contention –
Behind them Marseille are now six points clear in second place, with only the top two in Ligue 1 qualifying automatically for the Champions League and third place entering in the qualifying rounds.
Rennes remain third but are only above Strasbourg and Monaco on goal difference while Nice are two points back in sixth.
Strasbourg beat Rennes 2-1 in Alsace with Ludovic Ajorque grabbing their winner after Martin Terrier had cancelled out Habib Diallo’s early opener for the home side.
Meanwhile Monaco have surged back into European contention and climbed above Nice by beating their Cote d’Azur rivals 1-0 on Wednesday thanks to a first-half strike by Russian international Aleksandr Golovin.
It was a fifth consecutive victory for the principality side.
Nice are now out of the European places altogether, with fourth qualifying for the Europa League and fifth going into the Europa Conference League.
Lens remain in contention after beating Montpellier 2-0 to move to within one point of Nice, but Lyon and outgoing champions Lille saw their European hopes suffer potentially decisive blows.
Peter Bosz’s Lyon lost 2-1 away to Brest despite a 15th league goal of the season for Moussa Dembele, while a sublime Renato Sanches strike could not prevent Lille from going down 2-1 at Reims.
Meanwhile six-time champions Bordeaux remain in serious danger of being relegated to Ligue 2 after throwing away a two-goal lead to draw 2-2 at home to Saint-Etienne.
The result means Bordeaux are 19th, four points and one place behind Saint-Etienne who sit in the relegation play-off spot.
Clermont climbed above the latter and out of the relegation zone altogether by winning 1-0 at Troyes.
Bottom side Metz are eight points from outright safety after losing 1-0 at Lorient.