Lionel Messi scored a stoppage-time free-kick as he and Kylian Mbappe came to Paris Saint-Germain's rescue in a pulsating 4-3 victory over Lille.

PSG's prospects looked bleak when Jonathan Bamba's stunner put Lille 3-2 up after Neymar had gone off on a stretcher with an ankle injury.

The Ligue 1 champions had seemed in control after 17 minutes of Sunday's clash at Parc des Princes thanks to Mbappe and Neymar, only for Lille to deservedly haul themselves level through Bafode Diakite's header and Jonathan David's contentiously awarded penalty.

Yet Mbappe, who prodded home in the 87th minute to restore parity, paved the way for Messi to curl in a wonderful free-kick off the right-hand upright deep into the seven minutes of added time.

Gianluigi Donnarumma denied Lille twice in the opening 10 minutes, keeping out attempts from Timothy Weah and David.

Mbappe made PSG's luck count, brilliantly finding a way through two defenders and sliding a finish under Lucas Chevalier, who was picking the ball out of his net again when Neymar side-footed home.

David saw a fine header saved and somehow blazed the rebound over but Lille had the goal they deserved when Diakite nodded in from Andre Gomes' cross.

PSG's attempts to reassert their dominance after the break were hindered by Neymar's injury, sustained in a challenge with Benjamin Andre.

Their frustrations were compounded when referee Willy Delajod judged Marco Verratti to have fouled Tiago Djalo from a corner, and David put away the penalty.

The turnaround was complete 11 minutes later – Bamba catching Donnarumma out with a sumptuous effort – but Mbappe was on hand to haul PSG level.

Messi had the final say, his sublime free-kick clipping in off the post to snatch a memorable and much-needed victory.