But a penalty try and a Kyle Sinckler score helped England across the line as Tom Heathcote added 10 points with the point.
After an early spell of sustained pressure Heathcote got England onto the scoreboard with a straight-forward penalty but Ireland fly half JJ Hanrahan had the chance the level things but nudged his kick wide.
Five minutes later the Irish No. 10 more than made amends, scoring the game's opening try just wide of the posts and adding the conversion to make it 7-3.
England went down to 14 men when centre Will Addison was sent to the sin-bin for a dangerous tackle and lock Dom Barrow soon followed for an infringement at the breakdown.
Ireland made the most of their two man advantage, scoring their second try through scrum half Kieran Marmion to make it 12-3 before Hanrahan grabbed another penalty to make it 15-3 at the break.
A second Heathcote penalty early in the second half reduced the deficit to nine as England began to turn the screw.
The pressure eventually told with 20 left to play as the forwards pushed their way to a penalty try to make it 15-13 as Ireland had a man sent to the sin-bin.
England took full advantage of the extra man as prop Sinckler went over for his second try of the tournament after more good work from the pack to seal a tough victory.
Captain Ryan Mills was delighted with the win and said:
"It was really tough out there. Obviously the conditions weren't great but it was the same for both sides and Ireland really took the game to us.
"Full credit to them, they've played us on the back of beating South Africa in what was a physical Test match and gave us a really good match.
"It probably wasn't the most spectacular to watch but we got the result we needed and our focus now switches to South Africa on Tuesday."
Points: Penalty 1T, Sinckler 1T Heathcote 2P, 2C.
England Under 20 starting XV against Ireland
15 Tommy Bell (London Wasps)
14 Marland Yarde (London Irish)
13 Will Addison (Sale Sharks)
12 Ryan Mills (Gloucester Rugby) (C)
11 Charlie Walker (Harlequins)
10 Tom Heathcote (Bath Rugby)
9 Ben Spencer (Saracens)
1 Alec Hepburn (London Wasps)
2 Koree Britton (Gloucester Rugby)
3 Kyle Sinckler (Harlequins)
4 Dominic Barrow (Leeds Carnegie)
5 George Merrick (Harlequins)
6 David Sisi (London Irish)
7 Ben Nutley (Northampton Saints)
8 Jack Clifford (Harlequins)
16 Max Crumpton (Saracens) on for Koree Britton 58 mins
17 Luke Cowan-Dickie (Exeter Chiefs) on for Alec Hepburn 58 mins
18 Ross Harrison (Sale Sharks)
19 Sam Twomey (Harlequins) on for Dom Barrow 62 mins
20 Chris Walker (Leeds Carnegie) on for David Sisi 55 mins
21 Dan Robson (Gloucester Rugby) on for Ben Spencer 55 mins
22 Sam Hill (Exeter Chiefs) on for Sam Hill 41 mins
23 Ben Ransom (Saracens) on for Will Addison 55 mins
Content courtesy of RFU