Chasing 240 to have a chance of lifting the trophy, India fell to 24-4 with the in form Rohit Sharma and captain Virat Kohli both falling for just one run. Matt Henry did the damage early on, taking three wickets to leave India rocking.
India's only real resistance came from Ravindra Jadeja, who scored 77 from just 59 balls including four 6s to set up a thrilling end to the game.
Needing 37 from 18 balls, Jadeja fell to Trent Boult and that looked to be the end for India. MS Dhoni hit a six in the 49th over to keep India live, however he was run out superbly by Martin Guptill and India's hopes were ended.
A packed Old Trafford crowd were then stunned into silence and shock when Yuzvendra Chahal was caught behind, sending the New Zealand players wild.
New Zealand will be hoping to go one better than last World Cup Final when they were beaten by Australia.
New Zealand's slow start doesn't cost them
It is also worth remembering that New Zealand batted themselves in this game. Batting on the Tuesday morning, New Zealand made a very steady start with Guptill continuing his poor form, scoring just one run off 14 balls.
The Black Caps had reached 211-5 before rain halted play on Tuesday, with the players returning on Wednesday to complete the match.
Captain Kane Williamson made 67 but at a very steady pace. He shared a 65 run partnership with Ross Taylor but after Tuesday's play, India would have been confident of victory.
Day Two is New Zealand's day
The Black Caps added another 28 runs to their overnight total, reaching 239-8. It was always a total that was going to require a good bowling performance, and they didn't disappoint.
Both Boult and Henry were on it from the off. Once removing both Sharma and Kohli early, they knew they were right in the game.
Jimmy Neesham took a blinder at backward point to remove Dinesh Karthik and India were on the ropes four down.
It soon became nervy though for the Kiwis, as Jadeja, in full flow, had got to the last three overs needing just 36 to win and at this point, the Indian fans were believing again.
Once Jadeja was removed, it was left to the finisher Dhoni to get India over the line, but he couldn't deliver and New Zealand won by 18 runs.