Paris St Germain suffered their second Ligue 1 defeat of the season as Lyon bounced back from their midweek Europa League elimination to edge a 1-0 victory over the leaders to keep the pressure on fourth-placed St Etienne.
PSG, who were knocked out of the Champions League by Chelsea on Tuesday, were hoping to return to winning ways but were beaten after Jordan Ferri handed Lyon the lead just after the half-hour mark at Stade de Gerland.
Laurent Blanc's leaders - last defeated in the league back in December - could have tied up the title with a win had Monaco not beaten Rennes on Saturday, but the two results went against them and saw their lead cut to 10 points with five matches remaining.
The Parisiens could have made the perfect start inside 10 minutes when Gregory van der Wiel made space on the right before picking out Edinson Cavani, but the Uruguayan's near post header was kept out superbly by Anthony Lopes.
Lyon hit back and Bafetimbi Gomis' volley was pushed away by Salvatore Sirigu as both keepers stood up to their tasks early on.
Gomis continued to torment the PSG defence and, shortly after Lucas Digne had a goal ruled out for offside, the France international striker twice went close after using his strength to good effect but the scores remained level.
The hosts had enjoyed the better of the chances inside the opening half hour and their efforts paid off when Ezequiel Lavezzi gave up possession cheaply just outside his own area.
Ferri did the rest with a stunning strike that left Sirigu with little chance.
PSG almost levelled twice before the break but Cavani shot straight at Lopes following some good work from Javier Pastore before Cabaye volleyed just wide of the Lyon keeper's right post.
Lyon were forced into a defensive change early in the second half when Samuel Umiti replaced the injured Bakary Kone and the young defender was called into action immediately when he made a last-ditch block to prevent Cavani from firing PSG level.
In what was developing into an end-to-end battle, Remi Garde's team wasted two good opportunities to put the game to bed but Jimmy Briand's flicked header finished up just the wrong side of the post before Ferri almost scored his second stunning goal of the game only for Sirigu to deny the Lyon youngster.
Chances continued to come thick and fast as full-time approached, but Lavezzi fired into the side-netting after latching onto Thiago Motta's long ball while Lopes was proving to be a tough nut to crack in the Lyon goal as he kept out a decent Pastore effort.