India came from behind to record a shock victory and win a place in the women's hockey final.
New Zealand, who started the match as favourites after winning the group match between the two sides, took the lead through Suzie Pearce after just five minutes.
But Jyoti Kullu equalised on the stroke of half-time before Mamta Kharab grabbed the winner with just over eight minutes left.
The Indians will now play England in Saturday's final.
New Zealand controlled the early stages and took the lead when the Indian defence failed to deal with an attack down the right wing.
When the cross came in, Pearce was lurking on the penalty spot to turn the ball home.
The New Zealanders forced five penalty corners during the opening period but could not convert any of them.
And the Indians took advantage in the last two minutes of the half, when Jyoti deflected Sita Gussain's inch-perfect pass.
When India were awarded a penalty flick with 15 minutes to go, it looked as though the Kiwis would be made to pay.
But Jyoti delayed too long and umpire Dawn Henning awarded the New Zealanders a free hit.
The decision sparked protests both on and off the pitch.
But the Indians lifted their game and earned victory when Mamta flicked the ball home from an acute angle following a short comer.