Pape Souare headed in Florent Balmont's cross at the far post four minutes from time to score with Lille's only attempt on target.
Toulouse had been forced to play with 10 men for most of the second half after striker Oscar Trejo was sent off following a second booking.
Lille goalkeeper Vincent Enyeama had made a number of saves and he pulled off another stunning stop to deny Adrien Regattin in the final minute. It was his ninth successive clean sheet.
Lille remains second, four points behind PSG. Toulouse are winless in their past four matches and have slipped to 14th.
Monaco is a point further back after ending a run of two matches without a victory, despite a poor performance from star striker Radamel Falcao.
Falcao missed a series of scoring chances before being substituted shortly after the hour mark. His teenage replacement, Anthony Martial, started the move which led to the goal 20 minutes from time.
The France under-21 striker held off three Nantes defenders and managed to get the ball to James Rodriguez, whose effort was parried by goalkeeper Remy Riou. It came straight out to Mounir Obbadi, who curled in a delightful shot from 30 meters out.
Nantes remain fifth and are now six points behind Monaco.
Saint-Etienne is two points further back after winning 1-0 at Nice, which fell to its fourth successive defeat.
The travelling contingent of Saint-Etienne fans -- numbering approximately 250 -- had to be evacuated from the stadium before kickoff after dismantling their seats and throwing them toward the Nice fans. Eight people were injured, but none of them seriously.
Mevlut Erding took advantage of a poor mistake by Nice goalkeeper Lucas Veronese -- who was making his home debut -- to score the only goal of the game in the 23rd minute. Veronese misjudged a back pass and, as the ball rolled past the goalkeeper, Erding showed lightning-quick reactions to run onto it and slot it into an empty net.