France's late win over Wales sealed the Six Nations title as Ireland failed to beat England by a big enough margin.
Centre Florian Fritz's converted try with five minutes left gave France the lead for the first time after they had been outplayed by a dogged Welsh side.
Wales took control with centre Hal Luscombe's first-half try for a 13-6 lead at the break in Cardiff.
France's Dimitri Szarzewski hit back and a conversion and penalty from Jean-Baptiste Elissalde sealed the win.
The win put the French two points clear at the top of the Six Nations standings and left Ireland needing to beat England by 34 points at Twickenham.
Ireland beat England 28-24 thanks to a last-minute try but had to settle for the Triple Crown because of points difference.
Roared on by a capacity crowd under the closed roof of the Millennium Stadium, Wales set off at breakneck speed from the kick-off.
Tall scrum-half Mike Phillips was the first to get pulses racing with a searing break upfield before Stephen Jones' up-and-under created confusion behind French lines.
The Welsh momentum led to an early French infringement and Stephen Jones stroked his 501st point for Wales with the penalty.
Wales scrum-half Phillips was named man-of-the-match
France made a host of early errors in the face of Welsh aggression but levelled the score through Dimitri Yachvili after lock Ian Gough held onto the ball on the floor.
The visitors were struggling but enjoyed their best period around the 20 minute mark with a series of phases deep in the Welsh 22.
But French fortunes took a dive when captain Raphael Ibanez was sin-binned for a professional foul on 25 minutes after Luscombe's break through midfield had caused havoc.
Stephen Jones accepted the three points and 10 minutes later added a conversion after Luscombe was on hand to finish off Shane Williams' scorching raid to within yards of the French line.
France were denied a try of their own when Welsh prop Adam Jones dragged down Thomas Castaignede just short of the line but Les Bleus narrowed the gap to seven points shortly before the break with a second Yachvili penalty.
France squandered six points within a couple of minutes after the re-start as first Damien Traille and then Elissalde, on for Yachvili, missed penalties.
But instead, Les Bleus rumbled over from a catch-and-drive line-out near Wales' line, with replacement hooker Szarzewski claiming the spoils.
Elissalde missed the conversion and when replacement Gavin Henson, thrown the ball by Stephen Jones, slotted a 48m penalty, Wales edged ahead again.
France won a reprieve when Frederic Michalak beat Shane Williams to touch down over his own line with 10 minutes left.
And they broke Welsh hearts when Fritz pounced on Michalak's chip over the top to score late on.
Wales: Byrne; James, Luscombe, Watkins, S Williams; S Jones, M Phillips (Blues); Dun Jones, R Thomas, A Jones; Gough, Sidoli; Owen (capt), M Williams, Popham.
Replacements: Davies, Jenkins, J Thomas, Daf Jones, A Williams, Robinson, Henson.
France: Castaignede; Rougerie, Fritz, Traille, Dominici; Michalak, Yachvili; Marconnet, Ibanez, De Villiers; Pelous, Thion; Nyanga, Bonnaire, Lievremont.
Replacements: Szarzewski, Milloud, Nallet, Magne, Elissalde, Valbon, Heymans.