Lille won the Ligue 1 title on Sunday thanks to a 2-1 victory at Angers which ensured they were crowned French champions for the first time since 2011 on the final day of the season.
An early Jonathan David strike and Burak Yilmaz's penalty in first-half stoppage time ensured that Christophe Galtier's Lille finished one point ahead of second-placed Paris Saint-Germain, who won 2-0 at Brest.
Angelo Fulgini pulled one back in added time at the end of the match, but the hosts couldn't stop Lille becoming champions for the fourth time in their history.
The match was played behind closed doors due to Covid-19 restrictions but fans poured into the streets of Lille to celebrate at the final whistle.
Supporters lit flares and chanted songs in the northern city's central Place Charles de Gaulle in jubilation at a historic triumph against far wealthier opposition.
"This is exceptional. It's been a long day and a lot of pressure. To beat Paris Saint-Germain to the league title is something exceptional," a jubilant Galtier said to Canal+.
"The players were amazing... the credit goes to the players, they are the heroes."
The title triumph came after another away success for Lille, who finish the season unbeaten on the road since November, and ends a three-year league winning streak for PSG.
It was fitting that it was David and Yilmaz who scored the crucial goals at Angers, as both have been key to an improbable run to the title that has also held significant pressure from Monaco.
Canadian young gun David latched on to a superb Renato Sanches pass to coolly slot home his 13th of the league season with nine minutes on the clock, immediately calming any nerves after last week's disappointing draw with Saint-Etienne left them needing a win to make sure of the title.
David was the man who won the penalty that secured the points and the championship just before the break, Paul Bernardon bringing the 21-year-old down and allowing Yilmaz to score his 16th league goal of a remarkable season for the veteran Turkey striker.
- 'Focus on future' -
Mauricio Pochettino's PSG will have to settle for the French Cup in a disappointing season for the mega-rich club.
They lost eight times -- a record since they were taken over by Qatar Sports Investments in 2011 -- and took only one point from their two matches with Lille.
Neymar had already missed a penalty when they took the lead in the 37th minute at Brest thanks to a freak own goal from Romain Faivre, who somehow diverted Angel Di Maria's corner into his own goal from way out near his own touch line.
Kylian Mbappe made sure of the win in the 71st minute but by that time the destination of the title was already as good as certain.
"There are no worries. We lost the title and now we have to focus on the future," said Mbappe, who was crowned Ligue 1 top scorer for the third year in a row.
Monaco won the race for the final Champions League position despite only managing a goalless draw at Lens, as Lyon lost 3-2 at home to mid-table outfit Nice and allowed the Principality club to claim third spot.
Rudi Garcia revealed he will step down as Lyon coach after only leading his team to the Europa League.
"I wanted to quit the club with them in the Champions League, but it's not happened," said Garcia, who led Lille to the 2011 title.
"I will speak to the president (Jean-Michel Aulas) on Monday but I decided a long time ago that I will not continue here."
Lyon will be in the Europa League alongside fifth-placed Marseille, who scraped a 1-1 drew at Metz thanks to a penalty from Arkadiusz Milik in the 14th minute of added time.
Milik struck from the spot in an incredible ending to a match which came seven minutes after Farid Boulaya had given 10th-placed Metz the lead with a stoppage-time spot-kick of his own.
Nantes finished in the relegation play-off place after losing 2-1 at home to Montpellier. The 18th-placed team will play Toulouse to decide whether they stay in the top division.
Nimes and Dijon were already relegated going into the final round of matches.