Maxwell Cornet kontrollerade Alexandre Lacazettes pass för att köra i en öppnare.
Sergi Darder lade till en utsökt sekund på halvtid, kontrollera Rafaels kors och slå den förbi Kevin Trapp.
Trots Lucas Mouras styrda slut, förlorade PSG sin första ligan spelet sedan mars förra året, men har fortfarande en 23-punkts ledning på toppen.
Laurent Blancs sida hade inte förlorat en ligamatch sedan ett 3-2 nederlag i Bordeaux 11 månader tidigare, men såg ner på takten och kämpade utan det kreativa inflytandet av skadade yttern Angel di Maria.
Efter Cornets öppnare kunde PSG ha reducerats till 10 man, då mittfältaren Thiago Motta rymde med en bokning för att höja näven till sidan av Jordan Ferris huvud.
Ledarnas bästa förtrollning av tryck kom strax innan Darder gjorde det 2-0, med Zlatan Ibrahimovic har ett skott slagna ut av Lyonkeeper Anthony Lopes.
PSG såg sällan ut som utjämning efter Lucas gjorde, och den utmärkta Rachid Ghezzal borde ha lagt en tredjedel för hemmasidan när ren genom, men Trapp avancerade från sin linje till block.
Monaco, på andra plats, avslutar helgen efter att ha minskat gapet på toppen, trots att släppa poäng själva i en 0-0 dragning på Nantes.
Caen hade flyttat över Lyon och in i tredje tidigare på söndagen genom att vinna 2-1 på St-Etienne, med tidigare Wigan-strejkaren Andy Delort bland målskyttarna.
Paris St-Germains 36-match oslagbara körning i Ligue 1 avslutades när Lyon slog dem för att flytta in i den tredje och sista Champions League kvalificering plats.