The game was reduced to 42 overs per side. New Zealand posted 271/7 and India were given a revised target of 297. Virat Kohli and MS Dhoni hit half centuries but the visitors ended up with 277/9 in 41.3 overs when rain pulled the curtains down on the contest.
Duckworth/Lewis calculations came in again at the end and India lost by 15 runs. With this, New Zealand hold a 2-0 advantage in the five-game series.
It was a double blow for India as they lost the No. 1 ODI ranking to Australia.
Right from the start, India batsmen were behind the required run rate. It was a slow beginning by Rohit Sharma and Shikhar Dhawan.
Kohli, India's best batsman in run-chases, yet again produced a superb knock under pressure. The chase revolved around Kohli's 65-ball 78 and Dhoni, who promoted himself to No. 5, scored 56 off 44.
Suresh Raina, in the middle of form slump, hit an attacking 35 off 22. But all those efforts were not enough.
In the final 20 overs, India need 177. The equation got tougher with the number of overs passing by. In the end with 50 required off 24 and Dhoni batting, there was hope. Once he fell in the 40th over, the Kiwis were favourites and sealed the game.
In the first ODI in Napier, India went down by 24 runs and today by 15.
The third ODI is on January 25 (Saturday) in Auckland.
New Zealand score 271/7 in 42 overs
India batsmen have a daunting task of scoring 297 runs in 42 overs to win.
After two rain interruptions, the match was reduced to 42 overs per side. New Zealand posted 271/7 and later the target for India was revised as per Duckworth/Lewis method.
Left-hander Corey Anderson was yet again the star with the bat. His blistering 17-ball 44 (2x4, 5x6) propelled New Zealand past 250.
India, like the first ODI, bounced back in the final overs, thanks to Mohammed Shami. He removed captain Brendon McCullum (0) and a set Ross Taylor (57) in the 40th over after Ishant Sharma had sent back the dangerous Anderson in the previous over.
From 248/3, the hosts slumped to 252/7 in the space of nine balls.
Number three batsman Kane Williamson topscored for the Kiwis with 77. Opener Martin Guptill made 44. All top-five batsmen made useful contributions.
Offspinner R Ashwin went wicketless again. His eight overs cost 50. In the first ODI, he had conceded 52 in 10 without success.
Shami took three wickets for 55 in seven while Bhuvneshwar Kumar, Ishant, Ravindra Jadeja and Suresh Raina had one scalp each.
India need to win today to retain No. 1 ranking in ODIs.
India captain Dhoni won the toss again and opted to chase in the second One Day International against New Zealand on Wednesday.
India have gone in with an unchanged XI while the hosts brought in Kyle Mills for the injured Adam Milne.
Dhoni-led India need to win today to remain the No. 1 ODI side in ICC Rankings.
New Zealand won the first ODI by 24 runs in Napier. Virat Kohli's 18th ODI ton went in vain as the visitors faltered chasing 293.
New Zealand: Brendon McCullum (captain), Corey Anderson, Martin Guptill, Mitchell McClenaghan, Nathan McCullum, Kyle Mills, Luke Ronchi (wicketkeeper), Jesse Ryder, Tim Southee, Ross Taylor and Kane Williamson.
India: MS Dhoni (captain and wicketkeeper), Shikhar Dhawan, Rohit Sharma, Virat Kohli, Ajinkya Rahane, Suresh Raina, Ravindra Jadeja, R Ashwin, Ishant Sharma, Mohammad Shami, Bhuvneshwar Kumar.