Kane Williamson's team overcame favourites India by 18 runs in a thrilling semi-final at Old Trafford.
They will now play either England or Australia, who meet in the second semi-final tomorrow.
Star batsmen Rohit Sharma and Virat Kohli misfired as India lurched to 24 for four and then 92 for six, chasing 240.
Ravindra Jadeja's hitting gave India a fleeting hope but he departed with 32 required off 13 balls, before Mahendra Singh Dhoni was run out for 50 from 72 deliveries.
India were defeated after scoring 221 from 49.3 overs, while New Zealand managed 239 for eight.
Ross Taylor top-scored with 74 from 90 balls as the Black Caps added 28 runs in the remaining 3.5 overs of their innings, which were deferred until this morning because of persistent rain on Tuesday afternoon.
India made an abject start to their reply, losing three wickets in the space of 11 balls.
This included the prize scalps of Sharma and Kohli, who had contributed in excess of 1,000 runs in the group stage.
Jadeja, batting for the first time in the tournament, put on a World Cup record 116 for the seventh wicket.
The batsman clubbed four fours and as many sixes, before being caught off Trent Boult.
Though Dhoni attempted to up the ante, the veteran was run out following a direct hit from Martin Guptill in the penultimate over as India's hopes vanished.