There was drama to the dying seconds at the Millennium Stadium as Wales zalmost came back from the dead to steal victory.
Twice Welsh players crossed the French line in injury time as they went for the kill, but on both occasions the Italian video referee Claudio Giacomel ruled 'no try'.
It was the Welsh skipper Scott Quinnell who thundered over after taking the ball over the back of a French line-out five metres from their line.
He drove throgh two tacklers, but Serge Betsen somehow managed to get a hand underneath the ball to deny Wales a try in the 82nd minute.
But the home side, showing the sort of fire and passion their supporters were hoping for after their massacre in Dublin, put in one final effort to release James on the left.
The Bridgend wing, who finished the game at centre, went for the corner, but was superbly tackled by Aurelien Rougerie. James got the ball over the line, but Rougerie had dragged him into touch just before he was able to touch down for what would have been the vital winning score.
Wales started like an express train and after Stephen Jones and Damien Traille had swapped penalties, Craig Quinnell drove through Gerald Merceron and Tony Marsh for a try after 10 minutes.
Jones added the conversion and it was all Wales for the opening quarter.
But the French kept their cool, gained control up front and worked themselves into the lead with a Merceron penalty and corner try by Tony Marsh.
That Marsh try came after some great approach work by both French props, Pieter De Villiers and Jean-Jacques Crenca, and the Kiwi-born centre wasn't finsihed with Wales.
Two more penalties from Jones to one from Merceron kept Wales 16-14 ahead, but Marsh sped over again for a try which Merceron converted to edge the French ahead four minutes before the break.
Jones cut the gap to two points with a fourth penalty before Wales had a catastrophic 10 minutes. Skipper Scott Quinnell was given a yellow card by Irish referee Dave McHugh after clattering into Nicolas Brusque after the French full back had kicked ahead and Merceron made it 24-19 to the visitors at the interval with his third penalty.
Then, two minutes into the second half, Traille kicked ahead for Rougerie to chase close to the Welsh line and he dived with Welsh full back Kevin Morgan for the ball.
Morgan came up with the ball, but McHugh went to the video referee and the Italian arbiter gave the try to France.
Merceron converted and then kicked a penalty to open up a 15 point gap before the Welsh skipper returned to the field.
Quinnell's return made a huge difference to the Welsh team and they got back into the game after 58 minutes when back row man Nathan Budgett crossed for a try after some neat approach work from Andy Marinos.
Jones converted, but with 10 minutes to play Merceron kicked his fifth penalty to make the Welsh task all the more difficult.
Full back Morgan was then given the benefit of the doubt by the video referee when he dived for the line with a French defender two minutes from time and Jones' conversion from a wide angle set up a thrilling final eight minutes.
Wales tried, but failed - and France move on face England in Paris in round three of the Lloyds TSB Six Nations Championship with two wins under their belt.
Scorers: Wales: Tries: Craig Quinnell, Nathan Budgett, Kevin Morgan; Cons: Stephen Jones 3; Pens: Stephen Jones 4.
WRU International Skills Coach Jason Strange is a busy man, combining the new role with that of Wales Under 20 attack coach, Ebbw Vale head coach and continuing to teach at Ebbw Fawr Learning Community.
Warren Gatland and Sam Warburton look ahead to this week's crunch RBS 6 Nations tie against France, where the Wales skipper in particular is keen to make his mark, as Paris has proved a bleak place for him in the past.
Following their historic win over England, Wales Under 20 suffered a narrow, 36-34 loss to their Scottish counterparts last weekend, despite outscoring them by five tries to three. Watch the match highlights and reaction.
WRU TV go behind the scenes with the Wales squad as they put the final touches in place ahead of the clash against Scotland at Murrayfield. Follow the squad on their captain's run, the kickers visit to Murrayfield and Neil Jenkins' press conference