|Wales (6) 19|
|Tries: North Cons: Biggar Pens: Biggar 4|
|Team (3) 10|
|Tries: Guirado Cons: Trinh-Duc Pens: Plisson|
Unbeaten Wales recorded their fifth consecutive win over France to set-up a potential Six Nations title showdown with England at Twickenham on 12 March.
George North's second try in as many games helped Wales open up a 13-point lead early in the second half.
France enjoyed long periods of pressure, but by the time Guilhem Guirado drove over it was too late to matter.
Dan Biggar kicked 14 points as Wales moved to the top of the Six Nations.
But Wales will head to Twickenham with plenty of work to do after a stuttering display against a France side who failed to make them pay for conceding a stream of penalties in the second half.
The run continues
Wales have not lost to France since the 2011 World Cup semi-final and their experience and resilience were key in a game that masked an occasional lack of quality with an abundance of passion.
Warren Gatland's team have not lost in their past seven Six Nations matches and had the game under control after they nudged ahead early in the second half.
Opening dominance does not pay
Wales dominated possession and territory in a statistically one-sided opening 40 minutes, but found themselves only 6-3 ahead at the interval.
There was a 30-minute wait for the first real excitement, after which the French midfield produced a little of the magic of old to set Maxime Mermoz free.
And Wales scrum-half Gareth Davies burst but inexplicably kicked for the corner when he had six players on the outside and the defence exposed.
Then the French held out when Wales captain Sam Warburton opted for a scrum from a penalty on the stroke of half-time and looked the happier side as they headed for the changing room.
Fresh start, fresh impetus
Wales opened the second half with 10 points in six minutes, as first Biggar kicked a penalty after Warburton was hauled down just short.
Then the Wales captain's big hit dislodged the ball from Jefferson Poirot and when Jonathan Davies kicked into the open space North did what he does best.
The Northampton wing sprinted clear in the chase, missed the ball completely before having it kicked back to him by Jules Plisson to dive over for his 25th Wales try.
France's siege of the Welsh line saw captain Guirado spurn five chances to kick at goal in favour of line-outs and scrums, but Wales held firm and finally broke free after being pinned in their own 22.
Biggar rewarded the effort with a 65th-minute penalty to kill the game as a contest, but France had the final say when Guirado touched down and substitute Francois Trinh-duc converted.
North's try - a comedy of errors - gave Wales the cushion they were never keen to relinquish.
Man of the Match
Wales scrum-half Gareth Davies ran well and made lots of ground. Sam Warburton was a candidate too.
What happens next?
Gatland's side head off to Twickenham aiming to emulate the achievement of 1978 - the last time Wales won two consecutive matches at the home of English rugby.
Guy Noves' French revolution moves on to Edinburgh and a Scotland who have lost their last 10 internationals against France.
Wales: L. Williams, Cuthbert, J. Davies, Roberts, North, Biggar, G. Davies, Evans, Baldwin, Lee, B. Davies, Jones, Lydiate, Warburton, Faletau.
Replacements: Anscombe for L. Williams (73), Priestland for Biggar (70), L. Williams for G. Davies (76), Jenkins for Evans (55), Owens for Baldwin (66), Francis for Lee (66), Ball for Jones (76), Tipuric for Lydiate (76).
France: Medard, Vakatawa, Mermoz, Danty, Camara, Plisson, Machenaud, Poirot, Guirado, Slimani, Jedrasiak, Flanquart, Lauret, Burban, Chouly.
Replacements: Bezy for Medard (66), Fickou for Mermoz (66), Trinh-Duc for Plisson (62), Atonio for Poirot (62), Pelo for Slimani (62), Maestri for Jedrasiak (43), Goujon for Burban (52), Chat for Chouly (62).
Referee: Wayne Barnes (RFU)