Wales 7 (7)
France captain Serge Betsen led from the front in Cardiff
France 34 (17)
Tries: Thion, Mignoni, Rougerie, Bruno.
Cons: Beauxis 3, Elissalde.
Pens: Beauxis 3.
France confirmed their status as one of the World Cup favourites with an impressive final warm-up match against Wales at Cardiff's Millennium Stadium.
Wales may have been well beaten but showed enough to suggest that they, too, are finding some better form.
James Hook scored a try on the stroke of half-time, a feat England had failed to achieve in two losses to France.
But France were always ahead with tries from Jerome Thion, Pierre Mignoni, Aurelien Rougerie and Sebastien Bruno.
Lionel Beauxis also impressed at fly-half for Les Bleus, but at the heart of everything good that France did was captain Serge Betsen.
The Biarritz flanker was in inspired form both in attack and defence, although Wales back-row pair Alix Popham and Martyn Williams also shone in a losing cause.
Players on both sides suffered knocks in a bruising encounter, but Wales captain Gareth Thomas was stretchered off late on and there will be a nervous wait to discover the damage.
Stade Francais fly-half Beauxis soon kicked his first penalty after early pressure from the visitors.
Wales marched back into France territory, swinging the ball left and right through a dozen phases searching for a way through.
But Wales foundered on a wall of blue shirts as France again showed how good their defence has become.
Les Bleus had no such difficulty when they next attacked and carved great holes, despite some committed tackling from the likes of Popham and skipper Thomas.
Rougerie took play into the Welsh 22 and Remy Martin was just held up by Williams.
It was only a temporary reprieve, as a reverse pass from scrum-half Mignoni saw Thion - a late change in the France starting XV after Lionel Nallet failed to recover from a back strain - barge his way over.
Beauxis' conversion gave Les Bleus a 10-0 lead with 13 minutes on the clock.
Wales skipper Thomas needed stitches in a face wound after a clash of heads, but the former Toulouse back, now with Cardiff Blues, soon returned to the pitch.
One positive for Wales was an improved line-out display
The home line-out, so fragile in recent matches, was working well and the Wales forwards were also confident enough to take responsibility in open play.
With the backs struggling to make headway the forwards patiently picked and drove and, although progress was slow, the tactic did at least gain ground.
Yet the greater danger was still coming from France, and only a despairing dive from Martyn Williams stopped Cedric Heymans touching down Yannick Jauzion's grubber kick.
Hook dotted down the loose ball, but referee Wayne Barnes opted to award a five-metre scrum to France.
Brave defence again just stopped Martin from claiming a try, although it needed the video referee to decide the Stade Francais flanker had failed to ground the ball over the line.
It seemed as though the danger had been averted as Wales had the scrum, but Dwayne Peel's laboured kick from the base was charged down by Imanol Harinordoquy.
Peel's rival scrum-half Mignoni had the task of collecting the loose ball to flop over the Welsh line, handing Beauxis a simple conversion for a 17-0 lead.
But Wales hit back on the stroke of half-time, sucking in the French cover as Mark Jones and Martyn Williams combined to send Hook over on the right, the Ospreys fly-half converting his own try.
Beauxis drew first blood after the restart with his second penalty of the afternoon to stretch France's lead back out to 20-7.
That sparked Wales into casting caution to the wings - and the ball - as the men in red suddenly clicked into high-risk mode.
Kevin Morgan, Shane Williams, Mike Phillips - at scrum-half in place of Peel - and Jon Thomas were all involved as Wales ran from all angles, off-loading well to prevent French tacklers pinning them.
France were more than happy to enter into the spirit and only some fine covering from Phillips stopped Rougerie collecting his own kick ahead for a try.
The Ospreys scrum-half's good work was undone, though, as Beauxis' inside pass put Rougerie through a huge gap in the Wales midfield to go under the posts.
Part of that generous space was due to Morgan receiving treatment on a leg injury that ended his afternoon.
Sonny Parker came on at centre, with Gareth Thomas dropping back to cover full-back.
The Wales captain almost sent Shane Williams over for a try with an adept inside pass minutes later, only for the French defence to snap shut just in time.
Beauxis spoiled his 100% record by putting a penalty kick just wide of the left post, but his performance would have pleased France coach Bernard Laporte.
Less pleasing for opposite number Gareth Jenkins was a late injury to Thomas, the Wales captain stretchered off dazed after an already bruising afternoon.
Bruno charged over in the final moments for France's fourth try to cap a dominant display, with another replacement - Jean-Baptiste Elissalde - adding the conversion for a 34-7 final score.
Wales: K Morgan (Dragons); M Jones (Scarlets), J Robinson (Blues), G Thomas (Blues, capt), S Williams (Ospreys); J Hook (Ospreys), D Peel (Scarlets); D Jones (Ospreys), M Rees (Scarlets), C Horsman (Worcester), I Gough (Ospreys), AW Jones (Ospreys), J Thomas (Ospreys), M Williams (Blues), A Popham (Scarlets).
Replacements: TR Thomas (Blues) for Rees (46), G Jenkins (Blues) for D Jones (41), W James (Gloucester) for AW Jones (63), C Charvis (Dragons) for M Williams (51), M Phillips (Ospreys) for Peel (41), C Sweeney (Dragons) for Hook (70), S Parker (Ospreys) for Morgan (61).
France: C Heymans (Toulouse); A Rougerie (Clermont-Auvergne), Y Jauzion (Toulouse), D Skrela (Stade Francais), V Clerc (Toulouse); L Beauxis (Stade Francais), P Mignoni (Clermont-Auvergne); N Mas (Perpignan), D Szarzewski (Stade Francais), P De Villiers (Stade Francais), S Chabal (Sale), J Thion (Biarritz), S Betsen (Biarritz, capt), I Harinordoquy (Biarritz), R Martin (Stade Francais).
Replacements: S Bruno (Sale) for Szarzewski (41), J-B Poux (Toulouse) for De Villiers (54), F Pelous (Toulouse) for Thion (41), T Dusautoir (Toulouse) for Harinordoquy (48), J-B Elissalde (Toulouse) for Mignoni (41), D Traille (Biarritz) for Skrela (63), C Dominici (Stade Francais) for Rougerie (73).
Referee: Wayne Barnes (England).