Ireland built a 14-17 lead at halftime in a classic end to end match that saw both sides secure a try bonus.
Munster hooker Danny Sheahan bulldozed over in the fifth minute to score the game's opening try and put Ireland ahead, with out-half Jack Murphy Murphy clipping over the conversion.
However, France drew level seven minutes later when captain Mathis Castro-Ferreira dotted down with Tom Raffy adding the extras for 7-7.
Powerful Garryowen and Munster back-row Brian Gleeson's had Ireland back ahead after 25 minutes with the visitors second try, but Castro-Ferreira agains equalised. A Murphy penalty from 40 metres in first-half injury time helped Ireland into their three-point interval lead.
"I couldn't be any prouder of the lads than I am today!"
— Virgin Media Sport (@VMSportIE) February 3, 2024
Ireland U20 captain Evan O'Connell speaking to Tommy after that incredible win.#FRAvIRE | #SixNationsU20 pic.twitter.com/RZbM8sgf9D
Patrick Tuifua's try gave France their first lead of the game, 21-17, eight minutes after the restart.
The hosts lost Gregoire Arfeuil to a yellow card and 2023 Grand Slam champions Ireland took immediate advantage with Hugh Gavin's try and Murphy's conversion edging the visitors back in front, 24-21.
However, Raffy's well-struck penalty levelled the game at 24 apiece in a see-saw battle, before Finn Teacy and French substitute Mael Perrin exchanged tries. Those scores tied the pulsating game at 31-31.
Ireland U20 Luke Murphy, of Shannon RFC, with club captain Lee Nicholas following their Six Nations victory over France
Out-half Murphy then kept his composure superbly to land a crucial penalty after 77 minutes and, when captain Evan O'Connell, of UL-Bohemian and the Munster Academy, got a hand on a crucial French line-out, Ireland held possession and sealed victory with the last kick of the game, a close-range Murphy penalty.
"That is one of the best wins of my career."
— Virgin Media Sport (@VMSportIE) February 3, 2024
What a performance from this young man yet again tonight. And a great speaker too. Brian Gleeson #FRAvIRE | #SixNationsU20 pic.twitter.com/WyJ3xanHSD
Ireland U20s: 15. Ben O’Connor (UCC RFC/Munster); 14. Finn Treacy (Galwegians RFC/Connacht); 13. Wilhelm de Klerk (UCD RFC/Leinster); 12. Hugh Gavin (Galwegians RFC/Connacht); 11. Hugo McLaughlin (Lansdowne FC/Leinster); 10. Jack Murphy (Clontarf FC/Leinster), 9. Oliver Coffey (Blackrock College RFC/Leinster); 1. Alex Usanov (Clontarf FC/Leinster), 2. Danny Sheahan (Cork Constitution FC/Munster), 3. Andrew Sparrow (UCD RFC/Leinster); 4. Alan Spicer (UCD RFC/Leinster), 5. Evan O’Connell (UL Bohemian RFC/Munster) (capt); 6. Joe Hopes (Queen’s University Belfast RFC/Ulster), 7. Bryn Ward (Ballynahinch RFC/Ulster), 8. Brian Gleeson (Garryowen FC/Munster). Replacements: 16. Henry Walker (Queen’s University Belfast RFC/Ulster); 17. Ben Howard (Terenure College RFC/Leinster); 18. Jacob Boyd (Queen’s University Belfast RFC/Ulster); 19. Billy Corrigan (Old Wesley RFC/Leinster); 20. Luke Murphy (Shannon RFC/Munster); 21. Tadhg Brophy (Naas RFC/Leinster); 22. Sean Naughton (Galway Corinthians RFC/Connacht); 23. Ethan Graham (Ballynahinch RFC/Ulster).