With the score at 1-1, Messi was brought off after 74 minutes and looked on in shock as he passed PSG coach Mauricio Pochettino.
- Don't have ESPN? Get instant access
- ESPN+ viewers' guide: LaLiga, Bundesliga, MLS, FA Cup, more
However, PSG secured all three points in stoppage-time through substitute Icardi's header.
Messi has still not contributed a goal or assist in all competitions since joining PSG on a free transfer from Barcelona this summer.
Lyon, who made a stuttering start to the season, are ninth with eight points while Marseille moved up to second on 13 points from five games after a convincing 2-0 victory against Rennes.
Coach Mauricio Pochettino opted for an attacking lineup with Messi, Neymar, Kylian Mbappe and Angel Di Maria in front of a two-man midfield featuring Idrissa Gueye and Ander Herrera while Gianluigi Donnarumma started his second Ligue 1 game after Keylor Navas featured in the Champions League.
"It's a really important victory against a very good Lyon side," said Pochettino. "The team showed their character after conceding the goal and that's the most important thing tonight.
"Now we need to work a lot to find our balance."
Four minutes later, his 25-metre curled free kick crashed onto the bar.
Lyon went ahead nine minutes into the second half when Karl Toko Ekambi played Paqueta through for the Brazilian to beat Donnarumma at the end of a late run into the area.
It spurred PSG back into action and Neymar, who was closer to his best than in any other game this season, was brought down in the box.
The Brazil forward coolly slotted the ball past Lopes to convert the resulting penalty in the 66th minute.
Messi looked puzzled when he was replaced with fullback Achraf Hakimi, whose runs down the right flank were sorely missed by PSG.