Media playback is not supported on this device
Batting first, the previously unbeaten Black Caps raced to 89-1 after 10 overs, with Colin Munro blasting 46.
But England came back superbly to restrict them to 153-8, with Ben Stokes taking three wickets at the death as New Zealand scored just 20 off their last four overs.
Jason Roy hit a 44-ball 78 as England reached the target in 17.1 overs.
Eoin Morgan's side will play West Indies or India in Kolkata on Sunday.
Making it to the final completes a remarkable turnaround from last year's World Cup, where England were humiliatingly knocked out in the group stages, while New Zealand reached the final.
But England women were unable to win their semi-final, falling to a five-run defeat by Australia earlier in the day.
Media playback is not supported on this device
Coming into this tournament, Roy averaged just 13 from eight T20 international innings and had never passed 30, and he was under pressure for his place after a poor limited-overs campaign against South Africa.
But the 25-year-old Surrey batsman is now the third-highest run-scorer in the tournament after surely his finest innings in an England shirt.
Roy savaged the New Zealand bowlers from the off, taking Corey Anderson for four fours from his first over, and never looked back.
Brutal on the pull and off-driving powerfully, he hit a total of 13 boundaries before he was bowled by Ish Sodhi.
Media playback is not supported on this device
At the halfway stage in New Zealand's innings, England had conceded 12 fours and two sixes and were looking at a chase in excess of 200.
But they fought back quite brilliantly, as first spin and then outstanding death bowling from the seamers slowed the New Zealand juggernaut to a virtual halt.
Moeen Ali had been smashed for 32 runs from his two overs against Sri Lanka, but here he wrested control, dismissing the fluent Kane Williamson with a brilliant return catch and conceding just 10 runs from his two overs.
Corey Anderson and Ross Taylor steered New Zealand to 133-3 after 16 overs, but from there Stokes and Chris Jordan destroyed their hopes of a good total.
Jordan, consistently hitting a perfect yorker length, had Taylor caught at extra cover, while Stokes accounted for Anderson, Luke Ronchi and Mitchell Santner, all caught on the boundary.
New Zealand managed just one boundary in the last four overs - the least expensive ever bowled by England in a T20 international.
New Zealand entered the match having won all four of their group matches, and 12 of their last 13 in global tournaments.
But - just as in the World Cup final, when they froze at the Melbourne Cricket Ground - they appeared to be undone by a change of location, as they failed to adapt from the low-scoring conditions in which they had played their previous games to Delhi's more batsman-friendly track.
The Black Caps had defended scores of 126, 142 and 145 earlier in the tournament, but England had broken the back of the chase in amassing 49-0 by the time Williamson turned to his leading wicket-taker Mitchell Santner after four overs.
New Zealand's defeat means that they miss out on a first World Twenty20 final, and ensures that the record of no side ever having won the tournament undefeated will continue.
England captain Eoin Morgan: "I don't think it could have been much better. Maybe we would have liked to start better with the ball, but we did well to peg it back.
"Making a final is the kind of thing you dream of as a kid. Everyone in the dressing room has worked tremendously hard and made a lot of sacrifices to put us in this position.
"A lot of things have gone our way and we have earned the right to play the way we do and we hope it can be our day in the final."
England batsman Jason Roy: "There is no better feeling. The joy on everyone's faces was special and something that will stay very close to my heart for rest of my career.
"Again, Jordan and Stokes were outstanding. They practice their skills more than I have ever seen someone practice, so it is so good to see them reaping their rewards on the pitch. We're in the final, and we will take on whoever."
New Zealand captain Kane Williamson: "Credit to the England bowlers for the way they pulled it back.
"I knew we were a bit short in our total but we were beaten by the better team, who bowled better than us and came out and batted very aggressively. We weren't able to stem their runs and it was a fantastic knock from Jason Roy."
England powered into their second World Twenty20 final as they hammered New Zealand by seven wickets in Delhi.