Lionel Messi made his home debut for Paris St-Germain but was replaced in the second half as they went on to beat Lyon to make it six wins from six.
Summer signing Messi hit the angle of post and bar with a free-kick in the first half and forced a save from Anthony Lopes but was below his best.
With the score 1-1, the 34-year-old was replaced by right-back Achraf Hakimi and did not look happy at coming off.
Messi was given a round of applause, but not a standing ovation by his fans.
The forward, who left Barcelona this summer, did not stop but briefly said something to boss Mauricio Pochettino while walking past him to the bench.
Another PSG substitute, Mauro Icardi, scored the injury-time winner in the Ligue 1 game, as he headed in Kylian Mbappe’s cross.
Lucas Paqueta swept in Karl Toko Ekambi’s cross to give Lyon the lead.
But Neymar equalised with a controversial penalty. He appeared to pull back Malo Gusto in the box but the teenage Lyon defender was penalised instead, with a spot-kick given.
Neymar waited for Lopes to move before slotting in.
‘I asked how he was, he said he was OK’
PSG manager Pochettino said his decision to substitute Messi was not controversial.
“I think we all know we have great players in this 35-man squad,” said the former Tottenham manager. “Only 11 can play, we can’t play more. The decisions in the game are made for the good of the team and each player.
“Every coach thinks about that. Sometimes it works, sometimes it doesn’t. Sometimes players like it and sometimes they don’t. At the end of the day, that’s why we’re here.
“These are decisions that have to be made by the coach. As for his reaction, I asked him how he was, he said he was OK. That was it. That was our exchange.”
This was Messi’s third game for Paris St-Germain – the third game he has played for a club other than Barcelona.
It took 40 days between joining and making his home debut for fitness reasons and because of the last international break.
His debut came last month as a second-half substitute in a 2-0 win over Reims, with the goals scored before his introduction.
He made his first start on Wednesday in the 1-1 Champions League draw with Club Bruges. Like that game, the much-hyped front three of Mbappe, Neymar and Messi all started on Sunday.
Messi hit the angle of the woodwork in Belgium and again in Paris – and is still waiting for a first goal in PSG colours.
He showed a few moments of link-up play with his old Barcelona team-mate Neymar, but fitting into the rest of the team remains a work in progress.
PSG’s next game is Wednesday’s Ligue 1 trip to Metz, as they bid to make it seven wins from seven at the top of the league.
- 50G Donnarumma
- 5MarquinhosBooked at 67mins
- 25Tavares MendesBooked at 89mins
- 21HerreraSubstituted forWijnaldumat 86′minutes
- 11Di MaríaBooked at 6minsSubstituted forIcardiat 82′minutes
- 30MessiSubstituted forHakimiat 76′minutes
- 1LopesBooked at 80mins
- 27BoatengSubstituted forDiomandéat 65′minutes
- 39Guimarães Rodriguez Moura
- 29ShaqiriSubstituted forCherkiat 79′minutes
- 10Tolentino Coelho de LimaSubstituted forKeitaat 86′minutes
- 7Toko EkambiSubstituted forAouarat 65′minutes
- 12Silva Milagres
- 21Da Silva
- Clément Turpin
Match ends, Paris Saint Germain 2, Lyon 1.
Second Half ends, Paris Saint Germain 2, Lyon 1.
Goal! Paris Saint Germain 2, Lyon 1. Mauro Icardi (Paris Saint Germain) header from very close range to the bottom left corner. Assisted by Kylian Mbappé with a cross.
Foul by Achraf Hakimi (Paris Saint Germain).
Bruno Guimarães (Lyon) wins a free kick in the defensive half.
Foul by Thilo Kehrer (Paris Saint Germain).
Houssem Aouar (Lyon) wins a free kick in the defensive half.
Attempt missed. Rayan Cherki (Lyon) left footed shot from the centre of the box is high and wide to the left. Assisted by Malo Gusto following a set piece situation.
Nuno Mendes (Paris Saint Germain) is shown the yellow card for a bad foul.
Foul by Nuno Mendes (Paris Saint Germain).
Rayan Cherki (Lyon) wins a free kick in the attacking half.
Attempt blocked. Georginio Wijnaldum (Paris Saint Germain) right footed shot from the centre of the box is blocked. Assisted by Marquinhos.
Attempt missed. Nuno Mendes (Paris Saint Germain) left footed shot from outside the box misses to the right following a corner.
Attempt missed. Presnel Kimpembe (Paris Saint Germain) left footed shot from the centre of the box misses to the left. Assisted by Achraf Hakimi with a headed pass following a corner.
Corner, Paris Saint Germain. Conceded by Sinaly Diomandé.
Offside, Paris Saint Germain. Marquinhos tries a through ball, but Neymar is caught offside.
Substitution, Paris Saint Germain. Georginio Wijnaldum replaces Ander Herrera.
Substitution, Lyon. Habib Keita replaces Lucas Paquetá because of an injury.
Attempt blocked. Kylian Mbappé (Paris Saint Germain) right footed shot from the left side of the box is blocked. Assisted by Neymar.
Offside, Lyon. Rayan Cherki tries a through ball, but Islam Slimani is caught offside.