India left-armers Ashish Nehra and Yuvraj Singh shared six wickets to take their team to a six wicket win over New Zealand and a place in the Tri-series final against hosts Sri Lanka.
After dismissing New Zealand for 155 from 46.3 overs, India reached their target in the 41st over.
Skipper Mahendra Singh Dhoni (35 not out) and Suresh Raina (45 not out) shared an unbroken 72-run stand for the fifth wicket after they had lost their first four wickets for 84.
Sachin Tendulkar contributed 46 off 55 balls.
New Zealand, who won the toss, failed to find any momentum.
Man-of-the-match Nehra trapped openers Jessie Ryder and Brendon McCullum lbw off successive overs with McCullum's dismissal giving him his 100th wicket in one-day internationals.
After the initial damage had been done by Nehra, the left-arm spin of Yuvraj crippled the New Zealand middle order.
Yuvraj ended with figures of three for 31 and Nehra with three for 24.
India will play Sri Lanka in their second match on Saturday in what will be a dress rehearsal for Monday's final.