Lyon went into the game in fourth and had been regretting a series of spurned chances before the impressive Rachid Ghezzal dribbled round four Nantes defenders and lashed a shot at goal in the 83rd minute.
The shot was deflected by a desperate defender, but Perrin, who had been on the pitch just two minutes, was in the right place to nod the ball home.
Last season’s Ligue 1 stand out striker Alexandre Lacazette then converted a penalty four minutes into stoppage time after he had been tripped in the area, delivering a deserved 2-0 win.
The opener had come just as Nantes looked like they would emerge from the game with more than a point when a period of pressure saw Adrian Thomasson’s shot from the edge of the area for Nantes fizz just wide.
But Bruno Genesio’s Lyon dug deep to suggest they might have what it takes for a late run for Europe.
They never stopped working for the three points despite the disappointment of a series of near misses in the first half, culminating with a Ghezzal shot hitting the crossbar.
Lyon have 49 points in third while Rennes, who hammered Marseille 5-2 away on Friday, have 48, Nice have 47 but play minnows Gazelec-Ajaccio Sunday, while Caen have 46 after beating rock-bottom Troyes 2-1.
A further place behind and after three defeats in four games, Saint-Etienne got their push for Europe back on course with a late flurry of goals to win 3-0 at home to Montpellier.
In another relegation struggle Guingamp climbed five points above the drop zone when they clinched a 1-0 win at Reims courtesy of their Senegalese striker Younousse Sankare’s 26th minute shot.
Morgan Amalfitano got his first goal of the season to hand mid-table Lille a 1-0 victory over second-bottom Toulouse
Meanwhile, troubled Bordeaux play their first game under new interim coach Ulrich Rame when they entertain Bastia on Sunday.
Follow us on Twitter @NatSportUAE
Like us on Facebook at facebook.com/TheNationalSport