Wales put themselves back into Six Nations title contention with an impressive 27-6 win in Cardiff to end France's unbeaten run.
George North's try and five Leigh Halfpenny penalties gave Wales a handy 20-6 half-time lead, with Jean-Marc Doussain and Jules Plisson replying for France.
The second half was more closely fought but Louis Picamoles' sin-binning proved costly for France.
Soon after, Wales captain Sam Warburton stretched out an arm to score and seal victory for the defending champions.
Wales coach Warren Gatland had been so infuriated by their 26-3 loss in Ireland he had warned his players that some might be playing their last Test if they underperformed again.
But they responded magnificently, especially the two veterans at prop, Adam Jones and Gethin Jenkins - named man of the match, who scrummaged like demons against a hefty French front row.
If England can do Wales a favour by ending Ireland's unbeaten run on Saturday, the defending champions know they will travel to Twickenham in the next round with their fate still in their own hands.
Wales had suffered a setback before kick-off with lock Alun Wyn Jones, who captained the British and Irish Lions to victory in the third Test against Australia last summer, pulling out with a foot infection.
Wales were already without Jones's fellow Lion Jonathan Davies and Scott Williams, both centres, which saw North switched from wing to midfield.
But the biggest change by Gatland had been the decision to relegate 82-cap Lions scrum-half Mike Phillips to the bench in favour of Rhys Webb, winning his fifth cap.
While Gatland's side had won the previous two meetings between the sides, Wales had not won three in a row against Les Bleus since 1970-72 meaning the current crop have now equalled another record of that great side.
If Wales had any pre-match nerves, Halfpenny settled them with an early penalty before the full-back chipped ahead for North to score a try.
France full-back Brice Dulin got there just ahead of the Welshman, but was accidentally clattered by Doussain and the ball went loose for North to pounce.
Halfpenny missed the conversion but made amends with four more penalties before the break.
Doussain replied with one of his own but missed a sitter in front of the posts, so fly-half Plisson took over the kicking duties to add a second French penalty.
France were unlucky not to have claimed a try when Pascal Pape was up quickly on Rhys Priestland, but the ball went forward off his arm as he tackled the Wales fly-half.
Yannick Nyanga gathered the loose ball and sent it on to Yoann Huget, who skipped around Jamie Roberts to touch down only to be called back.
France coach Philippe Saint-Andre responded to the one-sided first half by replacing the misfiring Doussain with Maxime Machenaud at half-time.
Plisson had a chance to reduce the deficit early in the second half but was wide with a long-range attempt at the posts.
The visitors did improve, though, and only a last-ditch tackle by Priestland brought down Mathieu Bastareaud short of the line.
Referee Alain Rolland lost patience with the number of collapsed scrums and took the unusual step of sending a prop from each side to the sin-bin - Jenkins and Nicolas Mas.
When Picamoles infringed at a ruck nine minutes later, as well as getting involved in a scuffle with the Welsh pack, Rolland also brandished a yellow card at the France number eight.
Wales took immediate advantage as Roberts blasted through midfield, allowing Warburton to pick up from the ruck and stretch over.
Halfpenny added the conversion to seal victory and send Wales in good heart and good form towards what could be a crucial clash away to England on Sunday, 9 March.
Wales: Halfpenny, Cuthbert, North, Roberts, L. Williams, Priestland, Webb, Jenkins, Hibbard, A. Jones, Charteris, Ball, Lydiate, Warburton, Faletau. Replacements: Hook for Halfpenny (70), Biggar for Priestland (70), M. Phillips for Webb (70), James for Jenkins (70), Owens for Hibbard (56), R. Jones for A. Jones (70), Coombs for Ball (70), Tipuric for Lydiate (70).
Sin bin: Jenkins (50).
France: Dulin, Huget, Bastareaud, Fofana, Bonneval, Plisson, Doussain, Domingo, Szarzewski, Mas, Pape, Maestri, Nyanga, Lauret, Picamoles, Debaty. Replacements: Fickou for Bastareaud (70), Tales for Plisson (63), Machenaud for Doussain (41), Forestier for Domingo (63), Mach for Szarzewski (63), Vahaamahina for Maestri (63), Debaty for Nyanga (50), Chouly for Debaty (62).
Sin bin: Mas (50), Picamoles (62).
Referee: Alain Rolland (Ireland)
Touch judges: John Lacey (Ireland) & Dudley Phillips (Ireland)
TV: Graham Hughes (England)