New Zealand made 164 for six in Jaipur, which India reached with two balls to spare.
Indian captain Rohit Sharma won the toss and decided to field first and had immediate success with Daryl Mitchell dismissed for a golden duck.
However Martin Guptil scored 70 and Mark Chapman 63 as they put on 109 for the second wicket.
"We were probably ten runs short at the end, we didn't quite get there in the end but that can happen in cricket and the way we pulled it back with the ball was a fantastic effort," said Guptil.
Tim Seifert was the only other batter to reach double figures.
In reply India were cruising towards their target at 144 for two after 16 overs before the runs dried up and they needed 10 off the last over.
Suryakumar Yadav top scored with 62 and Sharma made 48.
Trent Boult took two wickets.
"It didn't come as easy... so great learning for the guys, to understand what needs to be done, not about power-hitting all the time. A good game for us, missing a few players, opportunity to other guys to show their ability," Rohit said after India's first game since their disappointing failure to reach the T20 World Cup semi-finals.
New Zealand skipper Tim Southee tried to take positives from the loss.
"You want to come out on the right side of close ones... but a game of fine margins," he said. "The way we started with the ball wasn't what we wanted, did well to claw it back in the middle, took it deep and to the last over was a positive."
New Zealand went into the game with a vastly changed side with Chapman, Rachin Ravindra, Todd Astle and Lockie Ferguson all playing.
Game two of the three match series is in Ranchi on Saturday morning.