Lille have been crowned Ligue 1 champions after a 2-1 victory at Angers on the final day of the season.
It is their first title in 10 years and is just the second time in the past nine seasons that Paris Saint-Germain have not finished top of the table.
PSG won 2-0 at Brest but needed a slip-up from leaders Lille and that was not forthcoming.
While it could have been a nervy day for Lille, Jonathan David's 11th-minute strike set them on their way early on in west France.
Though chances were few and far between, they doubled their lead in first-half stoppage time when Burak Yilmaz netted from the penalty spot.
Renato Sanches could have put the game to bed shortly after half-time only to spurn a glorious chance, not that it mattered in the end.
Brest's consolation goal came deep in second-half stoppage-time courtesy of a Angelo Fulgini goal and Christophe Galtier's men never looked in trouble.
It is the fourth time in Lille's history that they have been crowned champions of France as they ended one point clear of PSG.
Their 1-0 victory at Brest came courtesy of a Romain Faivre own-goal and a Kylian Mbappe strike midway through the second half. Neymar had missed from the spot with the scores still level for Mauricio Pochettino's men.
Monaco needed both teams above them to lose and to beat Lens handsomely if they were to capture an unlikely title, but could only draw 0-0 to finish their campaign.
At the bottom of the table, Nantes' 2-1 defeat at home to Montpellier saw them relegated alongside Nimes and Dijon.
Juve sneak into Champions League
Juventus' 4-1 rout of Bologna was enough to secure Champions League football next season at the expense of Napoli.
Andrea Pirlo's side needed Napoli or AC Milan to drop points and to win on the final day or risk a campaign in the Europa League.
Federico Chiesa put Juve ahead after just six minutes before Alvaro Morata and Adrien Rabiot had them three goals to the good at the break.
When Morata added a second shortly after half-time to ensure the Old Lady weren't going to slip up, all eyes turned towards the other games, despite Riccardo Orsolini's late consolation.
Franck Kessie's first-half penalty put AC Milan 1-0 up at Atalanta and despite a nervy ending, he netted a second from the spot in stoppage-time to ensure AC leapfrogged their opponents into second place and booked a place back in Europe's elite in the process
But further south, Napoli could not see off mid-table Hellas Verona. Amir Rrahmani put them ahead on the hour-mark, only for Davide Faraoni to peg them back just nine minutes later.
Gennaro Gattuso's men couldn't force a winner and slipped out of the top four as a result, with AC and Juve securing their spots alongside champions Inter Milan and Atalanta.
Champions Inter Milan thrashed Udinese 5-1 earlier in the day to cap their tremendous title-winning campaign.