Lyon drew 0-0 with struggling Bastia to trail Paris Saint-Germain by three points in the French league on Saturday.

Third-place Lyon dominated possession but failed to crack an aggressive Bastia side that finished the match with four yellow cards.

"They pressed all over the pitch, preventing us from developing our game," Lyon midfielder Maxime Gonalons said. "It's still a good point that we've taken tonight because it's never easy to come and win here."

Elsewhere, Monaco playmaker Joao Moutinho came off the bench to salvage a 2-2 draw with Caen by converting a cross from Yannick Ferreira Carrasco in the 75th minute. Monaco lost ground in the race for a Champions League spot, trailing PSG by 10 points.

"We lost two points even though we dominated," Ferreira Carrasco said. "Our goal is a top-three finish. There's still a long way to go. We are not saying that we're going through a crisis but we need points."

Rennes forward Paul-Georges Ntep scored in the 37th to help his side beat Guingamp 1-0 and climb to sixth place.

Lorient moved out of the relegation zone with a 1-0 victory over Lens. Lorient midfielder Raphael Guerreiro fired home a powerful strike in the 21st after Lens centre back Loick Landre was sent off for a violent tackle on Valentin Lavigne in the 15th.

Mid-table Nice drew 0-0 with Reims.

PSG edged Metz 3-2 on Friday to have a provisional two-point lead over Marseille, which hosts Bordeaux on Sunday.

In Bastia, the hosts threatened with a solo run from Francois Kamano in the 28th, but Lyon defender Milan Bisevac rushed back to block the close-range attempt.

Lyon goalkeeper Anthony Lopes salvaged a point by parrying a powerful strike from substitute Floyd Ayite in the 66th and stopping a low diagonal strike from Yannick Cahuzac in the 73rd.

Lyon's only scoring chance came in the 75th when Mohamed Yattara collected a through ball from Alexandre Lacazette but was denied by goalkeeper Alphonse Areola.

"We didn't give away anything from the first second to the last," Bastia midfielder Guillaume Gillet said. "We would be heading straight toward the second division if we don't play physical with that mindset. That's part of our strengths."

On Sunday, Saint-Etienne visits Nantes while Montpellier plays Toulouse.

The match between Lille and Evian was postponed to Jan. 7 because Stade Pierre Mauroy hosted the Davis Cup final this weekend.