Wales plugged away in the wet and wind at Colwyn Bay’s Stadiwm Zip World to beat reigning under-20 world champions France in the junior Six Nations.
It was a gutsy effort in difficult playing conditions as they picked up their first points in this year’s championship following defeats to Italy and Ireland.
Wales took the lead when skipper Jac Morgan pounced on a French mistake and hacked the ball on.
Wales gathered it and Leicester Tigers outside-half Sam Costelow ghosted through before putting half-back partner Ellis Bevan over.
Scarlets-bound Costelow converted from in front of the sticks to give his team the seven-point start they craved.
But Wales coughed up possession following a lineout just outside their 22 and conceded a penalty, which was put over by outside-half Thibault Debaes.
He added a second soon afterwards to reduce the arrears to a point following a Welsh offence at a lineout.
France came close to getting a try from the final play of the first half after No.8 Yann Peysson had picked up at the base of a scrum.
However, lock Josh Brennan, the son of former Ireland back-rower Trevor Brennan, knocked on as Costelow got underneath him.
English referee Adam Leal was playing advantage so gave France a penalty. They elected for another scrum and Wales were penalised at it.
The same thing happened as France again opted for a shoving contest. Another scrum took place with the ball popping out but France recovered it.
Wales hooker Dom Booth gave a soft penalty away and was sin-binned but Wales held on as the half, which had lasted 51 minutes, ended.
A clever kick by France substitute scrum-half Nolann Le Garrec forced Costelow to concede a 5m scrum and Wales, who still had Booth in the sin-bin, were under the cosh.
A score was inevitable and it came when prop Sacha Lotrian forced his way over the line for an unconverted try.
Wales were rewarded with a lineout drive resulting in a try for hard-working No.8 Morgan Strong, Costelow converting, to take the spoils.
Wales U20: Jacob Beetham (Cardiff Blues); Frankie Jones (Aberavon), Bradley Roderick (Ospreys), Aneurin Owen (Dragons), Mason Grady (Cardiff Blues); Sam Costelow (Leicester Tigers), Ellis Bevan (Cardiff Met); Theo Bevacqua (Cardiff Blues), Dom Booth (Scarlets), Ben Warren (Cardiff Blues), James Fender (Ospreys), Ben Carter (Dragons), Ioan Davies (Cardiff Blues), Jac Morgan (capt, Scarlets), Morgan Strong (Ospreys).
Subs: Will Griffiths (Dragons), Callum Williams (Scarlets), Archie Griffin (Bath Rugby), Rhys Thomas (Ospreys), Gwilym Bradley (Cardiff Blues), Dafydd Buckland (Dragons), Joe Hawkins (Ospreys), Josh Thomas (Ospreys).
Tries: E Bevan, M Strong; cons: S Costelow (2).
France U20: Cheikh Tiberghien; Nathanael Hulleu, Theo Costosseque, Tani Vili, Erwan Dridi; Thibault Debaes, Kevin Viallard; Sacha Lotrian, Loris Zarantonello, Aselo Ikahehegi, Josh Brennan, Fabien Witz, Mickael Guillard, Matthias Haddad, Yann Peysson.
Subs: Theo Lachaud, Andy Bordelai, Paul Mallez, Adrien Warion, Jordan Joseph, Nolann Le Garrec, Edgar Retiere, Nathan Fusier.
Try: S Lotrian; pens: T Debaes (2).
Referee: Adam Leal (England).