Marseille and Monaco secure Champions League spots
Marseille survived a mid-match interruption because of crowd trouble to secure its place in next season's UEFA Champions League, with Monaco also making sure of a top-three finish in Ligue 1.
Marseille beat Le Havre 3-1 to book its place. Amine Gouiri scored in the 53rd minute, but Issa Soumare equalised after a 15-minute interruption in the second half when the referee took the teams into the changing rooms in response to trouble in the stands.
But Mason Greenwood struck his 19th league goal of the season in the 85th minute to put them back ahead, with Gouiri adding a third in the ninth minute of stoppage-time to leave Le Havre facing the possibility of relegation next weekend.
Marseille is now guaranteed a top-three finish for the 29th time in its history in Ligue 1, with only Monaco (31) having finished in that position more often.
It is its third time in four seasons doing so, as many as it managed in the previous 11 campaigns.
Roberto De Zerbi insisted there was a unity within his team and praised how far it has come during his first season in charge.
"I believe that the coach must understand the decisive moments in a season," he said.
"At the beginning of the season, we had trouble playing at the Velodrome, the ball was hot, we were shaking a little.
"We talked about it. The objective was to stay together, united, without putting football first. We put other things in. We spent time together. We worked a lot on uniting the team, and it showed on the pitch.
"We saw a family, and with that, we have a better chance of winning. It's not true that the players were against me; it hurt me. There was never a mutiny, no problem.
"Ligue 1 is difficult. How many evolutions have we made, how many players have we changed, how many problems have we overcome this season?
"How difficult is it in Marseille? I think we did something very great."
Marseille currently sits second on the table on 62 points, one point above Monaco.
Second-half goals from Takumi Minamino and Denis Zakaria secured Monaco a place in Europe's top club competition, with champion Paris Saint-Germain the other side to have already sealed qualification.
The other French places in European club competitions will be decided on the final day of the season next weekend.
Fourth place in Ligue 1, which guarantees a place in the UEFA Champions League preliminary rounds next season, is still up for grabs with Nice, Lille and Strasbourg all on 57 points after they all lost on the road.
Rennes beat Nice 2-0 while Lille was edged by the same score at Brest. Strasbourg lost 2-1 at Angers, which moved to safety with the win.
Meanwhile, Saint-Etienne kept alive its hopes of avoiding the drop with a 2-0 away win over Coupe de France finalist Reims.