Skip to bottom of page to watch match highlights
France gave Shaun Edwards a Cardiff return to remember as Les Bleus stayed on course for a Six Nations Grand Slam by beating Wales 27-23.
Former Wales defence coach Edwards, now performing the same role with France, looked on as his team ran in tries from full-back Anthony Bouthier, lock Paul Willemse and fly-half Romain Ntamack.
Ntamack added three conversions and two penalties for a 17-point haul, with Les Bleus claiming a first win on Welsh soil since 2010.
And it proved richly deserved despite Wales clawing back to one point behind early in the second period through prop Dillon Lewis' first try for his country and fly-half Dan Biggar touching down late on.
Biggar booted two conversions and three penalties, collecting 18 points, yet Wales could have few complaints after falling to a second successive defeat under new head coach Wayne Pivac.
The reigning Six Nations champions suffered a first home reversal in the tournament since England toppled them three years ago.
They now have to pick themselves up for a Twickenham appointment with England in two weeks' time, while resurgent France will complete a Six Nations clean sweep if they see off Scotland at Murrayfield, followed by Ireland in Paris.
Wales showed two changes from the side beaten by Ireland a fortnight ago, with scrum-half Gareth Davies replacing Tomos Williams and flanker Ross Moriarty preferred to Aaron Wainwright.
Powerhouse centre Virimi Vakatawa returned to the French midfield following injury, partnering Arthur Vincent, with Gael Fickou deputising for Vincent Rattez, who is recovering from a broken leg.
Biggar kicked a fourth-minute penalty that opened the scoring, yet France responded in clinical fashion just three minutes later.
Wales full-back Leigh Halfpenny failed to gather Ntamack's steepling kick, and Les Bleus did not require a second invitation as Bouthier gathered and sprinted clear to score.
Ntamack converted, and alarm bells quickly rang again in the Welsh defence when wing Teddy Thomas looked to be clear, but the home side snuffed out danger.
France, though, continued to dominate, and Ntamack extended their lead through an angled penalty after Wales lost George North.
North, who was winning his 94th cap, did not return after going off for a head injury assessment following an aerial collision with Fickou, and Johnny McNicholl replaced him.
A second Biggar penalty cut the deficit, yet Wales immediately found themselves under pressure when France broke incisively and Fickou touched down after gathering Ntamack's kick.
But referee Matt Carley ruled it out following a forward pass in the build-up from Bouthier to Vakatawa, and Wales escaped.
It was a reprieve that lasted barely two minutes, though, as the French forwards drove an attacking lineout and Willemse touched down, with Ntamack converting.
Wales were being out-run and out-thought, and despite Biggar completing a penalty hat-trick as the interval approached, France continued to dominate.
There were chances for Wales ahead of the break, when they twice sacrificed kickable penalties for attacking scrums, fancying their chances after Les Bleus number eight Gregory Alldritt was sin-binned.
But aggressive French defence kept Wales out, and the visitors enjoyed a deserved 17-9 interval advantage.
Wales knew they had to announce themselves in the game, and their response was impressive, with Lewis crashing over for a 47th-minute try that Biggar converted to make it a one-point contest.
Wales' mini revival was a true test of the French, yet their response spoke volumes, with Ntamack intercepting Nick Tompkins' pass and sprinting 60 metres to score before converting his try.
It was a savage blow for Wales to absorb, and a 64th-minute Ntamack penalty gave France a double figures advantage as their sizeable travelling support belted out the French national anthem.
Wales went close to a second try 15 minutes from time, but hooker Ken Owens' pass to wing an unmarked Josh Adams was interrupted by Willemse, whose knock-down conceded a penalty, yet saw him avoid a yellow card.
Prop Mohamed Haouas was sin-binned, though, for a technical infringement as Wales began to pile on pressure, but their scrum folded under pressure and Les Bleus cleared.
Biggar's try, that he also converted, set up a grandstand finish, but France closed out the game amid a late skirmish involving both packs, to claim a famous win.