GB will play Australia, ranked second in the world, in Saturday's final at 13:35 BST.
Sam Ward gave Britain the lead from a penalty corner before Dominic Newman levelled for the Black Sticks.
But strikes from Phil Roper and Mark Gleghorne carried home Bobby Crutchley's side.
Britain's return to the final for the first time since England lifted the trophy in 1994 was confirmed when hosts Malaysia beat India 1-0 later in the day.
"It was a very good performance in stifling heat. I felt we dominated the game," said Crutchley.
"If we had a better conversion rate from the chances we created, the scoreline would have been more comfortable."
Results, fixtures & tables on the tournament's official website
Great Britain claimed a 3-2 win against New Zealand in the Sultan Azlan Shah Cup to become the first British side to reach the final in 23 years.