Paris Saint-Germain secured a record-equalling 10th Ligue 1 title on Saturday, moving level with Saint-Etienne, despite being held to a 1-1 home draw by 10-man Lens.
Lionel Messi looked to have curled in a fine winner in the 68th minute, but Lens dampened the already muted title party at the Parc des Princes through Corentin Jean with two minutes left.
PSG have an unassailable 16-point lead over second-placed Marseille with four matches remaining.
“The atmosphere is a shame,” captain Marquinhos told Canal+.
“Football is our passion, we started very young. We’ll try to have as much fun as possible. It’s a shame that won’t be with the supporters but we have to deal with it.”
Mauricio Pochettino’s men reclaim the crown from Lille, who were shock champions last season.
It is the capital giants’ eighth Ligue 1 triumph in the last 10 seasons, powered by the investment of their Qatari owners.
This season will still be seen as a failure for PSG, though, after collapsing to a dramatic loss to Real Madrid in the Champions League last 16, after also suffering a surprise French Cup loss to Nice.
On Saturday, an inevitable league title was confirmed in a strangely non-celebratory atmosphere in Paris, with some ‘ultras’ leaving early in protest after the Champions League exit.
“That’s something I don’t understand,” said midfielder Marco Verratti. “I know that they were disappointed about Madrid, but at some point you have to move on.”
Attention in the French capital will now turn to the future of Kylian Mbappe, with the star forward still to decide whether to stay at PSG or leave for Real Madrid before next season.
Lens started brightly, with Seko Fofana firing an early strike just over the crossbar.
PSG grew into the game, though, with visiting goalkeeper Jean-Louis Leca forced into smart saves from Achraf Hakimi and Messi.
The first big chance fell to Mbappe just after the half-hour mark, but the striker blazed wildly over after being played in on goal by Neymar’s clever flick.
Lens continued to threaten on the break, though, and a well-worked move ended with Jonathan Clauss shooting too close to Keylor Navas.
Mbappe almost broke the deadlock early in the second half after a quick free-kick by Verratti, but his first effort was saved by Leca and his follow-up attempt was blocked on the line.
PSG’s hopes of wrapping up the title with a win were given a boost in the 57th minute, as Danso was shown a second yellow card for a tackle on Neymar.
Messi almost found the corner of the net with the resulting free-kick, but Leca plunged to his right to make another good save.
Sergio Ramos should have scored midway through the second half, but the veteran centre-back scooped over from eight yards out.
It was Messi who finally gave the match a moment to remember, bending a trademark finish over Leca from the edge of the box.
The Argentinian has now scored four Ligue 1 goals in a disappointing first season for PSG since leaving Barcelona.
But, perhaps fittingly, the hosts conceded a late equaliser as Jean slid in at the back post to divert home Deiver Machado’s low cross.
European hopefuls Lens pushed for a winner which would have kept PSG waiting for at least another 24 hours, but the home side held on and almost won it themselves when Mbappe dragged horribly wide.
The final whistle brought bizarre scenes, with the Lens players celebrating and PSG’s newly-crowned champions looking sheepish.
Elsewhere on Saturday, Monaco moved into third place above Rennes with a 4-1 victory at relegation-threatened Saint-Etienne.
The game was suspended for more than half an hour due to smoke from flares in the crowd.
Wissam Ben Yedder scored his 20th league goal of the season as Monaco’s sixth straight league win lifted them above Rennes, who host Lorient on Sunday, on goal difference.
The third-placed side secures a place in Champions League qualifying.