Wales Under-20 continued their Six Nations title challenge with a battling win over their Italian counterparts in dreadful conditions in Viterbo.
Flanker Daniel Thomas went over in the first minute. Scrum-half Rhodri Williams followed suit before the visitors were awarded a penalty try.
Maxime Mbanda struck back, but two late Sam Davies penalties sealed Wales' win.
The match had been threatened by postponement following heavy rain.
But conditions eased sufficiently for the game to go ahead and Scarlets flanker Thomas gave the hosts the perfect start as the Welsh forwards drove for the line from the kick-off.
Ospreys fly-half Davies added the conversion and his half-back partner Williams, of the Scarlets, extended Wales' early advantage.
A penalty try followed as Wales' pressure told up front, Davies again adding the extra points.
Edoardo Padovani's penalty gave Italy their only first-half points, but the hosts fought back after the break.
Their efforts tested Wales' discipline and coach Danny Wilson saw hooker Nicky Thomas and skipper and number eight Ellis Jenkins sin-binned.
The latter's banishment, in the 58th minute, meant Wales were briefly down to 13 men.
That gave Mbanda the chance to go over and Michele Campagnaro converted.
But after being restored to a full complement, Wales regained their composure and control for fly-half Davies to slot the late penalties that ensured victory.
VIEWS FROM THE DRESSING ROOM
Wales Under-20 coach Danny Wilson told Scrum V: "We wanted to get the game played. We felt we had a game plan that could do a job. At times that faltered, there's no doubt about that.
"But on the whole the character that these boys has just shown yet again that they're a real, brave bunch.
"Our scrum gave us a bit of a weapon and when we got field position the errors came in and… we took the points that put us far enough away.
"So a mature performance and really pleased with what the boys have done."
Italy Under-20: Angelo Esposito (Benetton Treviso); Niccolò Albano (Rugby Viadana), Michele Campagnaro (Benetton Treviso), Giovanni Benvenuti (Marchiol Mogliano), Filippo Guarducci (Marchiol Mogliano); Edoardo Padovani (Marchiol Mogliano), Marcello Violi (Crociati Rugby); Sami Panico (Mantovani Lazio), Alain Moriconi (UR Capitolina), Tiziano Pasquali (Leicester Tigers), Andrea Trotta (Nuova Rugby Roma), Michele Andreotti (Cammi Calvisano), Vittorio Marazzi (Crociati Rugby), Maxime Mbanda (Rugby Grande Milano), Jacopo Salvetti (capt, Cammi Calvisano).
Replacements: Luca Conti (L'Aquila Rugby), Luca Scarsini (Cammi Calvisano), Rudy Biancotti (Valtellina Rugby Sondalo), Giacomo Riedo (Zhermack Badia), Davide Rimpelli (Crociati Rugby), Simone Marinaro (Fiamme Oro), Filippo Buscema (UR Capitolina), Andrea Bettin (Petrarca Padova).
Wales Under-20: Jordan Williams (Scarlets/Llanelli); Aaron Warren (Llandovery) Cory Allen (Blues/Cardiff), Thomas Pascoe (Blues/Pontypridd), Ashley Evans (Ospreys/Bridgend); Sam Davies (Ospreys/Swansea), Rhodri Williams (Scarlets/Llandovery); Gareth Thomas (Scarlets/Carmarthen), Nicky Thomas (Osprey/Swansea), Ethan Lewis (Blues/Cardiff), Carwyn Jones (Scarlets/Carmarthen), Rhodri Hughes (Ospreys/Swansea), Sion Bennett (Scarlets/Carmarthen), Ellis Jenkins (capt, Blues/Cardiff), Daniel Thomas (Scarlets/Llanelli),
Replacements: Elliot Dee (Bedwas), Nicky Smith (Ospreys/Swansea), Dan Suter (Ospreys/Bridgend), Jack Jones (Ospreys/Rovigo), James Benjamin (Bedwas), Joshua Davies (Dragons/Bedwas), Steffan Hughes (Scarlets/Llanelli), Dion Jones (Scarlets/Llanelli).