Wales U20s got off to a winning start in the Six Nations with victory over Ireland at Colwyn Bay.
Sam Davies' penalty gave Wales the lead only for Ireland's Luke McGrath to score the opening try, converted by Tom Daly.
Davies' second penalty cut Ireland's lead to a point before Dion Jones' try put Wales in front.
Fly-half Davies added two further kicks in between a Daly try for Ireland, who also added a penalty late on.
Wales' defence held firm to secure their first win over Ireland in the Under-20s Six Nations since 2008.
Danny Wilson's side face France next Sunday while Ireland host England in Athlone next Friday.
Wales Under-20 head coach Danny Wilson: "We missed a few kicks but the boys stood up well. We came in at half-time feeling we'd missed the opportunity to push the ball a bit wider as well and played a little too tight.
"But second half we had a nice balance to our game when we had the ball. What we saw there was a huge gutsy effort at the end with a huge bout of phase play by Ireland that we managed to hold them out.
"Come the end we were digging in and holding on a little bit but the first game's a win and we'll take that and happy."
Wales Under-20: Dion Jones (Scarlets/Llanelli); Ashley Evans (Ospreys/Bridgend), Cory Allen (Blues/Cardiff), Steffan Hughes (Scarlets/Llanelli), Ashton Hewitt (Dragons/Newport); Sam Davies (Ospreys/Swansea), Rhodri Williams (Scarlets/Llandovery); Nicky Smith (Ospreys/Swansea), Elliot Dee (Bedwas), Nicky Thomas (Ospreys/Swansea), Jack Jones (Ospreys/Rovigo), Rhodri Hughes (Ospreys/Swansea), Sion Bennett (Scarlets/Carmarthen), Ellis Jenkins (capt, Blues/Cardiff), Daniel Thomas (Scarlets/Llanelli).
Replacements: Ethan Lewis (Blues/Cardiff), Gareth Thomas (Scarlets/Carmarthen), Dan Suter (Ospreys/Bridgend), Llewelyn Jones (Scarlets/Llandovery), James Benjamin (Bedwas), Joshua Davies (Dragons/Bedwas), Ethan Davies (Bedwas), Thomas Pascoe (Blues/Pontypridd).
Ireland Under-20: Stuart Olding (Belfast Harlequins/Ulster); Alexander O'Meara (Hartpury/Exiles), Tom Daly (Lansdowne/Leinster), Rory Scannell (Dolphin/Munster), Rory Scholes (Belfast Harlequins/Ulster); Steve Crosbie (Old Belvedere/Leinster); Luke McGrath (UCD/Leinster) Captain; Brian Scott (UCC/Munster), George McGuigan (Newcastle Falcons/Exile), Chris Taylor (Malone/Ulster), John Donnan (Ballynahinch/Ulster), Gavin Thornbury (UCD/Leinster), Peadar Timmins (UCD/Leinster), Ryan Murphy (Dolphin/Munster), Conor Joyce (Malone/Ulster).
Replacements: John Andrew (Ballymena/Ulster), Peter Dooley (Lansdowne/Leinster), Jake Caulfield (Malone/Ulster), Sean McCarthy (Shannon/Munster), Josh Van Der Flier (UCD/Leinster), John Creighton (Malone /Ulster), Darren Sweetnam (UCC/Munster), David Panther (Corinthians/Connacht).