England went behind just once in the game as tries from flanker Matt Hankin, wing Anthony Watson and replacement prop Tom Smallbone helped them to the win, while composed fly half Henry Slade added 18 points with the boot.
Good early pressure on the Kiwi back-line yielded the first points of the game for England as Slade slotted his penalty from in front of the posts.
But New Zealand hit back five minutes later when hooker Epalahame Faiva crashed over the line after some good phase play.
England regained their lead thanks to a well-taken penalty from Slade two minutes later to make it 6-5 and it got even better for England.
A strong 30-metre burst forward from captain Jack Clifford fixed the New Zealand defence and Hankin was on hand to crash over for his first Under 20 try on his third appearance.
With 30 on the clock Watson made a good break from midfield but the ball slipped through his fingers at the crucial moment. He made amends five minutes later though, stealing a loose pass from the Baby Blacks and racing over the line. Slade added the extras to put England into a 20-5 lead.
Hickey brought the half to a close with his first penalty of the evening to make it 20-8 at the break.
Slade got the first points of the second period with a well-struck penalty after the Baby Blacks were penalised for crossing. But New Zealand hit straight back with a penalty of their own, coolly taken by replacement fly half Jade Te Rure.
With 60 minutes played New Zealand had their second try. England had been defending with 14 men while Danny Hobb-Awoyemi received treatment and the extra man paid dividends when centre Jason Emery went over in the corner to make it 23-18 after Te Rure's conversion.
With New Zealand on the attack England found a second wind and Smallbone burrowed after the line for his second try in as many games after the referee had consulted the TMO to make it 30-18.
As New Zealand continued to push, England's stoic defence held firm, and a break upfield from full back Nowell resulted in a penalty to England which Slade kicked over to bring the game to a close.
Head Coach Walshe said: "The lads were absolutely unbelievable. From the first minute they put their bodies on the line - they were excellent. We knew that New Zealand would want to play with the ball in hand - and they did.
"They made it very tough for us, but our defence were brilliant. We showed real character to stay in front and I'm over the moon with the win.
"Wales will be a tough challenge - we obviously know them pretty well from the Six Nations and they put in a massive performance against the South Africans. So massive credit to them and we look forward to seeing them on Sunday."
Points: Hankin 1T, Watson 1T, Smallbone 1T; Slade 4P, 3C.
England Under 20s
15 Jack Nowell (Exeter Chiefs)
14 Anthony Watson (Bath Rugby)
13 Harry Sloan (Harlequins)
12 Sam Hill (Exeter Chiefs)
11 Ben Howard (Worcester Warriors)
10 Henry Slade (Exeter Chiefs)
9 Alex Day (Northampton Saints)
1 Danny Hobbs-Awoyemi (Northampton Saints)
2 Luke Cowan-Dickie (Exeter Chiefs)
3 Scott Wilson (Newcastle Falcons)
4 Elliott Stooke (Gloucester Rugby)
5 Dominic Barrow (Leeds Carnegie)
6 Ross Moriarty (Gloucester Rugby)
7 Matt Hankin (Saracens)
8 Jack Clifford (Harlequins) (c)
16 Scott Spurling (Saracens) on for David Sisi 78 mins
17 Alec Hepburn (London Wasps) on for Danny Hobbs-Awoyemi 58 mins
18 Tom Smallbone (London Irish) on for Scott Wilson 68 mins
19 Tom Price (Leicester Tigers) on for Elliott Stooke 66 mins
20 David Sisi (Bath Rugby) on for Matt Hankin 40 mins
21 Callum Braley (Bristol Rugby) on for Alex Day 66 mins
22 Ollie Devoto (Bath Rugby) on for Ben Howard 79 mins
23 Henry Purdy (Leicester Tigers) on for Harry Sloan 60 mins