David netted before and after the break at the Stade de la Beaujoire to take his tally to five goals in as many games and hand Lille a sixth consecutive win.
The outfit from far northern France are two points ahead of second-placed Lyon, who had gone top on Saturday after beating Strasbourg 3-0 with two goals from Memphis Depay either side of one from Karl Toko-Ekambi.
PSG are now six points off the pace in third but Mauricio Pochettino's side play later on Sunday at bitter rivals Marseille, while Monaco in fourth are only behind the Parisians on goal difference after winning 4-3 at Nimes.
David pounced on a defensive mix-up to put Lille in front from close range early on, and the US-born forward secured the points with a fantastic second goal seven minutes from time.
After being picked out in the middle by Timothy Weah, David played a one-two with Renato Sanches before firing high into the net for his seventh goal altogether this season.
Nantes are in the bottom three having gone 15 matches without a win, including seven games under Raymond Domenech, the veteran former France coach who was appointed in December.