France were not at their flamboyant best but a try from flanker Anthony Jelonch helped the Six Nations leaders to a 13-9 victory over a Wales side full of fight at the Principality Stadium.
Friday’s win was the seventh in a row for Fabien Galthie’s team.
France stay on course for their first Six Nations title, and grand slam, since 2010 with a remaining fixture to come against England in Paris on March 19.
Their other points came from the boot of fullback Melvyn Jaminet, who kicked a conversion and two penalties.
Wales were impressive in containing the visitors’ attacking instincts and captain Dan Biggar was exceptional with the boot as he won territory and kicked three penalties to keep them in the contest to the last minute.
Wales captain Biggar felt France were fortunate to win as the reigning Six Nations champions lost for the third time in four games this season.
Biggar told BBC Sport: “It’s very disappointing. I thought we were the better team for large periods of the game and one or two big moments is what Test matches hinge on.
“We didn’t quite nail those moments and we paid the price.
France second row Paul Willemse praised Wales for their performance but admitted Les Bleus’ focus was now on grand slam glory.
Willemse told BBC Sport: “We knew this was going to be one of the toughest games of the season so we’re really happy with the result.
“We have a lot of things to work on for next week and I’m sure we will be doing that.
“This is an amazing and incredible team to be a part of and I’m really grateful because I think we can do big things.”
Unbeaten France have 18 points from four games in the championship, ahead of second-placed Ireland (11 points) and England (10) in third.
Those two sides meet at Twickenham on Saturday to keep their title hopes alive.