Paris St-Germain continued their perfect start to the new Ligue 1 season by handing Lille their first loss of the campaign.
Both sides had won their first two games, and there was not much between them in the opening exchanges.
But the breakthrough came in the 33rd minute when PSG forward Ousmane Dembele was brought down inside the box and Vitinha stepped up to score the penalty.
The visitors moved 2-0 up three minutes later as Bradley Barcola was picked out by Marco Asensio and slotted home his fourth goal in three games.
Lille pulled a goal back 12 minutes from time when Edon Zhegrova drove a shot from distance into the bottom corner.
The hosts thought they had levelled and completed a dramatic comeback when Tiago Santos scored from close range, but it was disallowed for offside.
France forward Randal Kolo Muani then made sure of the win for PSG when headed in a third in stoppage time.