Neymar continued to run the rule up top for the Parisans, who dropped strike-partner Kylian Mbappe to the bench in favour of Angel Di Maria.
PSG should've gone in front in the first seven minutes from a ball out wide by Alessandro Florenzi, but Moise Kean was not on the same wavelength with his Italian counterpart.
Thomas Tuchel was forced into a substitution a minute to the half-hour mark after Abdou Diallo came off second best from a tough tackles and was replaced by Thilo Kehrer.
Lyon hit the front ten minutes before the end of the first half when Tino Kadewere slipped through the area to send a low shot past Keylor Navas following a pass from Karl Toko Ekambi.
The Parisans looked for a fast start to the second half, but the visiting side eagerly pushed for more goals with Kadewere in particular inches close to a brace from Lucas Paqueta's through pass.
Tuchel threw on more firepower inside the midway stage of the second half, with Leandro Paredes sacrificed for Ander Herrera and Di Maria for Mbappe.
Mbappe should've brought the defending champions level two minutes into stoppage time after getting onto a loose ball in the area, but fired wide of target.
Rudi Garcia's outfit had Thiago Mendes dismissed in the lengthy stoppage time following a dangerous tackle, who had to be stretchered off, but the visitors were able to hold for the win.