Montpellier led 2-0 at half-time through a Luan Peres own goal and a Gaetan Laborde effort before Marseille loanee Cengiz Under marked his debut by halving the deficit.
Dimitri Payet then bagged a five-minute brace, including a fine free-kick, to complete a 3-2 win.
After Payet's second goal referee Jeremie Pignard was forced to stop play after missiles were thrown on the pitch.
Some reports claimed Marseille midfielder Valentin Rongier had been struck by a projectile before the game was continued and the final minutes played.
Burak Yilmaz hit a last-gasp equaliser as champions Lille came from behind to earn a 3-3 draw at 10-man Metz.
Fabien Centonze struck either side of a Matthieu Udol effort to put the hosts 3-1 up after Lille defender Sven Botman had broken the deadlock.
But, with Boubakar Kouyate sent off just before the hour for a foul on Yilmaz, the hosts were pegged back.
Nanitamo Ikone reduced the arrears with nine minutes remaining before the experienced Yilmaz provided the equaliser at the death.
Clermont Foot are in Ligue 1 for the first time in their history and the top-flight newcomers enjoyed a fine start.
Promoted as Ligue 2 runners-up last season, two late goals saw Pascal Gastien's side win 2-0 at Bordeaux as Mohamed Bayo and Jodel Dossou struck.
There was also a 2-0 away win for Angers with goals from Ismael Traore and Stephane Bahoken enough to take three points away from Strasbourg.
Lens drew 1-1 at Rennes as Seko Fofana cancelled out Kamaldeen Sulemana's opener for the hosts while Nice and Reims played out a goalless start to their campaigns.
Meanwhile, Wahbi Khazri's penalty saw St Etienne come from behind to draw 1-1 at home to Lorient, who had taken the lead through Vincent Le Goff.