Monaco kept alive any slim hopes of claiming a first Ligue 1 title in 14 years with a 3-1 win over Nantes.
Having not tasted victory in their previous two league outings, Claudio Ranieri's team had to win to prevent themselves falling an almost unassailable 13 points behind PSG with just 18 to play for and a brace from Colombian James Rodriguez proved just the tonic.
Bafetimbi Gomis scored his 100th Ligue 1 goal to help Lyon to a hard-fought 2-1 win over 10-man Valenciennes, who remain six points adrift of safety.
The French international gave the hosts the lead before Waris Majeed offered hope for Ariel Jacobs' side with a leveller shortly after the hour mark.
That advantage, though, lasted just a matter of minutes as Jordan Ferri scored his second of the season in some style.
The hosts had Marco da Silva sent off in the 84th minute, but almost snatched a point only for goalkeeper Anthony Lopes to save a late Majeed penalty.
St Etienne's Max Gradel scored a stoppage-time penalty to deny Nice a first win in three games with a 1-1 draw at the Stade Geoffroy-Guichard.
All three points looked to be heading back to the south coast courtesy of Mathieu Bodmer's solitary strike, but in the last minute Didier Digard was sent off for a handball in the area and Ivory Coast international Gradel made no mistake from 12 yards.
Apoint for Christophe Galtier's team does little to help their Champions League aspirations, leaving them five points behind third-placed Lille.