England, who looked out of the series until their surprise 92-run hammering of Australia on Friday, recovered from a poor start to post 270 for seven before restricting New Zealand to 256 for eight on Tuesday.
Paul Collingwood's century provided the backbone of the England innings before New Zealand failed to capitalise on a Stephen Fleming hundred and blew a run chase they looked to have well in hand.
Liam Plunkett, who conceded eight wides in a disastrous first over in the New Zealand innings, also went from villain to hero when he bounced back to pick up the vital wickets of Peter Fulton, Jacob Oram and Brendon McCullum.
England will face hosts Australia in the best-of-three finals series which starts in Melbourne on Friday.
"Paul Collingwood and Andrew Strauss' partnership was crucial," said England captain Michael Vaughan.
"We've got a bit of fighting spirit in this team again and a week in cricket is a long time as we have shown with the way we've played in the last two games.
"Full credit to the team and the way they have responded in the last week."
Fleming was shattered by the defeat, which comes just weeks away from the World Cup in the Caribbean.
"We wanted to be here next week and we felt we were starting to play some good cricket," he said.
"It is disappointing to be getting on the plane tomorrow. We kept giving them wickets at crucial times and couldn't get in front of the game."
The wicket of Oram (5) was pivotal, as he had been in top form and it seemed New Zealand were content to pace their innings, expecting the left-hander to blast them home.
At 169-3 from 35 overs, the Black Caps were ready to book a berth in the finals, needing just 102 runs from 15 overs with seven wickets left.
But Oram failed and they lost 29-5 as the match slipped away and their recent run of narrow and frustrating losses continued.
Captain Fleming notched his seventh one-day century and first in almost three years in making 106, but it wasn't enough and he also wore the blame for the run-out of Ross Taylor.
Astute captaincy by returning skipper Vaughan and tight bowling by Andrew Flintoff, Monty Panesar, Collingwood and Plunkett slowed the Kiwis' progress before they started losing vital wickets.
While Plunkett claimed the wickets, Collingwood bowled some brilliantly defensive medium pacers at the other end to back up his good work with the bat.
After taking the wicket of Scott Styris, Collingwood all but sealed the win when he had Daniel Vettori caught by Vaughan from the last ball of his 10 overs, which yielded 2-46.
Flintoff was also outstanding and bowled better than figures of 1-37 suggested, while it was the introduction of Panesar that put the brakes on a flying start by the Black Caps.
England had looked in trouble early in their innings at 52-3 before Collingwood and Andrew Strauss made timely returns to form.
Collingwood (106) and Strauss (55) bolstered the innings with a 123-run fourth-wicket stand, both players making their first substantial scores of the series.
Collingwood had been horribly out of form, but returned after missing last Friday's win over Australia due to illness to score a superb and much-needed hundred.
He made the most of an early life, with Black Caps all-rounder Jacob Oram grassing a costly caught and bowled opportunity when Collingwood was 18.
Collingwood, who also teamed with James Dalrymple for a handy partnership of 59 in the latter overs, brought up a well-deserved century -- his third in one-day internationals -- when he pushed Shane Bond down to long-on for two.
He was eventually bowled around his legs by Bond in the 48th over as he looked for quick runs, having faced 121 balls for eight fours.
Having missed the last five games of his comeback series after knee surgery with a hamstring strain, Vaughan watched as Bond's first delivery sailed through innocuously for a wide.
The next delivery was a perfect in-swinging yorker that crashed through his defences and hit middle stump to have the England captain for a duck.