England outscored the Irish by four tries to one but could never quite shake the Irish off due to a mixture of imprecise English play and some fine and spirited resistance from the Irish.
England started off like a house on fire and quickly fashioned a try for Worcester wing Andy Short. When George Ford slotted two penalties for a 13-0 lead, things looked bleak for the Irish.
Irish fly half Paddy Jackson missed his first two penalties but finally found his range for 13-3 and then scored a slightly fortuitous try through Andrew Conway only for Henry Thomas to extend England's lead to 18-13 at half time.
Gloucester's Ryan Mills was replaced at half time by Owen Farrell but it was Jackson who struck next as his penalty made it an 18-16 game.
Mako Vunipola barrelled his way over for what seemed to be a defining third try but James McKinney, who had by now taking over kicking duties for the Irish, slotted three penalties to edge his team into a 23-25 lead with ten minutes to go.
Ford kept his cool to restore the lead at 26-25 with a late penalty before Yarde's late try and Forde's conversion sealed the win.
England U20
1) Mako Vunipola (Saracens)
2) Mike Haywood (Northampton Saints)
3) Henry Thomas (Sale Sharks)
4) Joe Launchbury (London Wasps)
5) Charlie Matthews (Harlequins)
6) Matt Kvesic (Worcester Warriors)
7) Matt Everard (Leicester Tigers)
8) Alex Gray © (Newcastle Falcons)
15) Ben Ransom (Saracens)
14) Andy Short (Worcester Warriors)
13) Elliot Daly (London Wasps)
12) Ryan Mills (Gloucester Rugby)
11) Jonathan Joseph (London Irish)
10) George Ford (Leicester Tigers)
9) Chris Cook (Bath Rugby)
Replacements:
16) Rob Buchanan (Harlequins)
17) Ryan Bower (Leicester Tigers)
18) Sam Twomey (Harlequins)
19) Sam Jones (London Wasps) on for Matt Everard 55 mins
20) Dan Robson (Gloucester Rugby) on for Chris Cook 60 mins
21) Owen Farrell (Saracens) on for Ryan Mills 40 mins
22) Marland Yarde (London Irish) on for Jonathan Joseph 50 mins