Ligue 1 Wrap: Sochaux relegated, Lille clinch Champions League spot
Herve Renard's men, who had secured survival on the last day in each of the last two seasons, went into the game needing a win to complete a dramatic escape for the third consecutive year.
However, Sochaux could not deliver the goods this time around as Evian sealed safety thanks to a Daniel Wass double and a strike from centre-back Aldo Angoula.
At the other end of the table Lille secured a place in next season's UEFA Champions League by coming from behind to beat Lorient 4-1.
Jeremie Aliadiere put Lorient ahead in the 22nd minute but Lille responded superbly, with a brace from former Chelsea forward Salomon Kalou helping them to an ultimately comfortable victory.
That result meant Saint-Etienne had to settle for a place in the UEFA Europa League, despite a 3-1 victory against bottom club Ajaccio.
Christophe Galtier's men will be joined in Europe's second-tier club competition by local rivals Lyon, who qualified for the competition by marking coach Remi Garde's final game in charge with a 1-0 triumph at Nice.
Marseille will not be competing in Europe next term, with their 1-0 success over Guingamp proving in vain.
That game was also marred by an injury to Steve Mandanda, part of France's squad for the FIFA World Cup, who suffered a jarring blow to the head in a challenge and left the field on a stretcher.
Champions Paris Saint-Germain capped off another successful season by hammering Montpellier 4-0.
Ezequiel Lavezzi opened the scoring after two minutes, before Zlatan Ibrahimovic, Lucas Moura and Adrien Rabiot all found the net in an easy win for the capital club.
In winning for the 27th time this term, PSG set a new record for the most victories in a French top-flight season.
Second-placed Monaco drew 1-1 at home to Bordeaux, Argentine winger Lucas Ocampos earning a share of the spoils after Guillaume Hoarau had put the visitors in front.
Elsewhere, Wissam Ben Yedder scored a hat-trick in Toulouse's 3-1 victory over Valenciennes, Rennes won 3-1 at Reims and Bastia and Nantes played out a 0-0 draw.