England beat New Zealand by two runs but failed to reach the Twenty20 tri-series final against Australia.
Captain Eoin Morgan hit 80 not out to help England post 194-7, ensuring they needed to restrict New Zealand to less than 175 to go through on net run rate.
The hosts surged past that mark thanks to Colin Munro's 57 from 21 balls and Martin Guptill's 62 off 47 at Hamilton.
Tom Curran's superb final over meant the Kiwis fell short in a thriller, but England bowled poorly early on.
New Zealand face Australia in the final at Auckland on Sunday because of a superior net run rate over that of England, who ended a run of three consecutive defeats with their first win of the series in the final group game.