Ireland maintained their unbeaten run in this year's under-21 Championship with a hard-fought win at Musgrave Park
Two tries from Queen's University's Tommy Bowe and a penalty from Michael Rainey helped Michael Bradley's men to their third win in as many games.
France almost snatched an unlikely victory at the death when Welsh referee Colin Saunders played almost eight minutes injury time for no apparent reason. French substitute Pierre Emmanuel Garcia forced his way over for a try in the corner, but fellow replacement Yannick Lafforgue missed a difficult conversion attempt.
France opened the scoring in the 17th minute with winger Jean Philippe Grandclaude crashing over under the posts after a superb pass from outhalf Benoit Baby, who converted the try.
Ireland were struggling on their lineout and looking devoid of attacking ideas in the opening half, but they got back into the game in first-half injury time. Good work first by the pack and then hooker Rory Best set winger Richard Lane away. He was stopped short but managed to get the ball away to full back Tommy Bowe who crashed over for a try.
Ireland scored the try of the game in the 50th minute. A bad kick by the French full back was collected by Keith Matthews, who found Bowe deep inside his own 10 metre line. Bowe had the pace and he made it all the way to the corner.
Rainey missed the conversion but made amends in the 62nd minute when he kicked a penalty.
IRELAND: T Bowe (QUB); R Lane (UCC), K Matthews (UL Bohs), B Murphy (UL Bohs), J Hearty (Blackrock College); M Rainey (Glasgow), F O'Loughlin (Shannon); E McGovern (Old Crescent), R Best (Belfast Harlequins), J Moran (UCD); D Gannon (UCD), N McCombe (Dundee HS); J Muldoon (Galwegians), S Keogh (UCC, capt), N Ronan (Lansdowne). Replacements: C Potts (St Mary's College) for J Muldoon (61 mins), D Fitzpatrick (Belfast Harlequins) for J Moran (67 mins).
FRANCE: M Etcheverria; N Sestaret, D Lison, JP Grandclaude, Y Donguy; B Baby, N Durand; T Berhabe, B Rioux, G Bergos; A Marchois, R Friand; Y Nyanga, T Soucaze, G Lamboley (capt). Replacements: P Emmanuel Garcia for JP Grandclaude (half-time), A Vigouroux for B Rioux (75 mins), Y Forestier for T Berhabe, R Chlusky for R Friand, V Deniau for T Soucaze (all 55 mins), C Garcia for N Durand (68 mins), Y Lafforgue for M Etcheverria (73 mins).
Referee: C Saunders (Wales).