Jonathan David pulled Lille ahead mid-way through the second half with substitute Adam Ounas grabbing a second four minutes into injury time.
After their opening round draw against Nice, Lille are now second, level on four points with Montpellier, Toulouse and Marseille.
David, scorer of 24 goals last season as Lille finished fifth, got his first in Ligue 1 this season.
The Canadian found himself in the right position after 66 minutes to finish off a Remy Cabella header.
Paulo Fonseca's side were reduced to ten men after Brazilian defender Aleksandro saw red on 78 minutes for fouling Nantes' Abdoul-Kader Bamba.
Lille conceded a goal soon after, but it was disallowed after a VAR review as offside.
Aleksandro's exit coincided with Ounas' entry and the Algerian provided the spark in an otherwise lacklustre game.
The winger first won a penalty after being mowed down by Quentin Merlin with four minutes to go, but it was cancelled after a VAR viewing for an offside position.
But he made no mistake with the clock ticking with a deflected shot into goal.
Nantes, who narrowly avoided the drop last season, suffered their second defeat after last week's loss at home to Toulouse.
๐ฆ๐ฒ๐บ๐ฎ๐๐ผ๐ฐ๐ถ๐ฎ๐น ๐ถ๐ ๐๐ต๐ฒ๐ฟ๐ฒ ๐ฟ๐ฒ๐ฎ๐น ๐ฝ๐ฒ๐ผ๐ฝ๐น๐ฒ ๐ฐ๐ผ๐ป๐ป๐ฒ๐ฐ๐, ๐ด๐ฟ๐ผ๐, ๐ฎ๐ป๐ฑ ๐ฏ๐ฒ๐น๐ผ๐ป๐ด. Weโre more than just a social platform โ from jobs and blogs to events and daily chats, we bring people and ideas together in one simple, meaningful space.