- Kylian Mbappé (11', 87')
- Neymar (17')
- Lionel Messi (90'+5')
- Bafodé Diakité (24')
- Jonathan David (58' Pen)
- Jonathan Bamba (69')
Messi won a free kick five minutes into stoppage time and the Argentine curled it into the bottom corner to score his 11th league goal of the season and seal the dramatic victory.
Lille, who remain fifth, almost caught the hosts off guard within the opening 40 seconds when Timothy Weah's low shot took a wicked deflection, but Gianluigi Donnarumma was down fast to save with his legs.
PSG quickly grew into the game after the early scare, with Messi hitting the target from a tight angle after being played through by Neymar.
Kylian Mbappe, making his first start after a two-week injury layoff, opened the scoring in the 11th minute with a brilliant piece of individual skill, ghosting past two opponents and squeezing a shot under keeper Lucas Chevalier.
"The match was not great, we made a lot of mistakes but we have shown that even when the context is not favourable, we can get through. We are a different team, we can get by all the time," Mbappe told Prime Video.
Christophe Galtier's side doubled their lead six minutes later, when Neymar tapped in a Vitinha cross to finish off a flowing move.
PSG suffered a blow early in the second half when Neymar was taken off on a stretcher with a suspected ankle injury.
Lille piled on the pressure and were rewarded when Gomes pinged a long ball into the feet of Jonathan Bamba, who smashed his effort past Donnarumma to give his side the lead.
The visitors let their intensity drop, however, and they were punished when Mbappe turned in Juan Bernat's cross to make it 3-3.
"It was a crazy match, we quickly scored the first two goals then we relaxed and Lille came back but in the end we were able to raise our heads and win the match," PSG defender Presnel Kimpembe told Prime Video.
- Willy Delajod