Lille held their nerve to claim a first Ligue 1 title in 10 years with top goalscorer Burak Yilmaz on target in a 2-1 win at Angers which clinched the championship.
Christophe Galtier’s men knew victory on the road would ensure Paris St Germain’s result away to Brest was insignificant and the leaders produced a professional display to secure a 24th league win, with Jonathan David’s 10th-minute opener a key settler for the away side.
One point was all that separated Lille – who endured a nervy finale after Angelo Fulgini’s stoppage-time goal – and the Champions League semi-finalists, who failed to win the title for the first time in four years.
While Mauricio Pochettino watched his players seal a 26th victory out of 38 in the division, 2-0 following Romain Faivre’s own-goal and a Kylian Mbappe strike, PSG had to settle for second after losing eight times throughout the domestic campaign.
Monaco finished up in third despite a stalemate with Lens after fourth-place Lyon lost 3-2 at home to Nice. Arsenal loanee William Saliba was Nice’s match-winner after two Karl Toko Ekambi goals for Lyon were cancelled out by first Kasper Dolberg and then Hassane Kamara.
Nantes’ 2-1 defeat to Montpellier left them in the relegation while Rennes’ 2-0 win over Nimes helped them leapfrog Lens and qualify for the Europa Conference League.
Elsewhere, Dijon won away to Saint-Etienne, Bordeaux also tasted victory at Reims while Strasbourg and Lorient played out a 1-1 draw, as did Metz and Marseille.
Serie A champions Inter Milan signed off from their campaign in style with a five-star performance in a 5-1 win over Udinese before lifting the trophy.
Former Premier League stars Ashley Young and Christian Eriksen got the scoring under way in the first half at San Siro before Lautaro Martinez, with a penalty, Ivan Perisic and Romelu Lukaku added further efforts.
Roberto Pereyra did pull one back for Udinese but Antonio Conte was able to lift the title after one last league win.
There was drama elsewhere in Italy with Juventus able to sneak into the Champions League courtesy of a 4-1 win at Bologna coupled with Napoli being held to a 1-1 draw at home to Verona.
Marco Faraoni’s effort 21 minutes from time in the Diego Armando Maradona Stadium cancelled out Amir Rrahmani’s opener for the hosts after an hour.
It meant Gennaro Gattuso’s side finished on 77 points and Alvaro Morata’s brace helped Juventus to a win which saw them end a point above Napoli.
Federico Chiesa and Adrien Rabiot were also on target before Riccardo Orsolini grabbed a consolation for Bologna.
There was also drama involving the clubs based in Rome. Henrikh Mkhitaryan’s goal in the 85th minute ensured Roma were able to draw 2-2 at Spezia which qualified them for the Europa Conference League in Pablo Fonseca’s final match before Jose Mourinho takes over this summer.
Trailing by two goals at half-time, a point would be enough for seventh and after Stephan El Shaarawy reduced the deficit, Mkhitaryan produced the goods late on for the visitors.
It meant Sassuolo missed out on a place in Europe despite a 2-0 win over Lazio, who finished sixth, while AC Milan were indebted to a brace of spot-kicks by Franck Kessie which earned victory at Atalanta by the same score to pip the hosts to second spot.
Already relegated Benevento bid farewell to Serie A with a 1-1 draw at Torino, the team who consigned them back to the second tier of Italian football.
Sevilla were able to beat their record points tally in LaLiga with a late goal against Deportivo Alaves after Papu Gomez netted in stoppage time.
Julen Lopetegui’s team reached 77 points while it was 0-0 between Granada and Getafe.
In Holland, Dick Advocaat bowed out from management by guiding Feyenoord to a 2-0 win over Utrecht in the Eredivisie play-off to qualify for the Europa Conference League.