Messi started and finished the slick move after exchanging passes with Neymar and curled the ball expertly past the despairing dive of goalkeeper Anthony Lopes for his fourth league goal of the season.
It was Neymar's seventh assist in the league this season, and the former Barcelona teammates combined again moments later as Messi went close.
Neymar was making his 100th league appearance for PSG, during which time he has been involved in 121 goals (77 goals and 44 assists).
With the World Cup in Qatar fast approaching, the Brazil star looks fitter than he has for many injury-plagued years since joining from Barcelona for a world record 222 million euros ($222 million) in 2017.
His partnership with Messi is getting closer to what it was at Barca when they shared 299 goals from 2013-17.
Lyon got into the game more in the first half and Alexandre Lacazette had a shot saved by Gianluigi Donnarumma, but also missed a free header from close to the goal.
Messi had a shot cleared off the line early in the second half as PSG pressured before fading. With Lyon enjoying possession, PSG's midfield was stretched and Marco Verratti limped off midway through the second half after a knock to his calf muscle.
``It's a blow,`` PSG coach Christophe Galtier said. ``He was supposed to go and join up with the (Italian) national team tonight (but) he will come back to Paris for tests.``
PSG hit back and Messi's low shot drew a superb low save from Lopes in the 78th, then Lopes made an even better save to claw away Messi's curling free kick near the end. Neymar seemed unhappy about being substituted in the 85th and looked glum as he looked on from the bench.
Nice defender Jean-Clair Todibo will quickly want to forget this game after he was sent off just nine seconds into his side's 1-0 home defeat to Angers.
The former Barcelona central defender tripped Abdallah Sima as he was running through on goal and referee Bastien Dechepy had no hesitation showing him the fastest red card in French first division history.
``A refereeing decision that shocks me and condemned my team to start the match at a big disadvantage,'' Todibo wrote on his Twitter account. ``Referee's decisions at the start of this season have been very questionable and I hope the LFP (French league) does something to remedy this.``
Angers also finished with 10 players after midfielder Sofiane Boufal was sent off in the 62nd minute, but Nice couldn't find an equalizer to midfielder Nabil Bentaleb's fine 20-meter strike for Angers in the 43rd.
Marseille remains unbeaten but dropped points in a 1-1 home draw with Rennes where midfielder Matteo Guendouzi scored at both ends.
Rennes took the lead midway through the first half at Stade Velodrome when Guendouzi scored an own-goal by deflecting in Hamari Traore's cross.
He made amends in the 52nd when he headed home from a corner past former Marseille goalie Steve Mandanda, who played more than 600 games for Marseille and captained the club for many years.
Lens stayed in fourth place _ one point behind Lorient _ after drawing 0-0 at Nantes in a tight game.
Aleksandr Golovin scored at the start of the second half and Takumi Minamino and Wissam Ben Yedder netted late on in fifth-place Monaco's 3-0 win at Reims.
Elsewhere, striker Mama Balde scored twice as Troyes rallied from conceding an early goal to win 3-1 at Clermont and Corsican side Ajaccio picked up its first victory of the season with a 1-0 win at Brest.
(For more sports news and updates, follow Ahram Online Sports on Twitter at @AO_Sports and on Facebook at AhramOnlineSports.)