Rahul, who had scored 56 in the first T20I at the same venue, remained unbeaten on 57 with Shreyas Iyer also contributing with 44 runs. He put up an 86-run stand with Shreyas Iyer, who scored 44 off 33 balls, his innings punctuated three sixes and a four.
Chasing a modest 136, the Ind were jolted early with Tim Southee (2/20) removing Rohit Sharma (8) and Virat Kohli (11) early.
Spinners Ish Sodhi and Mitchell Santner then bowled some quiet overs to keep their chances afloat as India were 60/2 at the halfway stage.
But it was in the 15th over that Rahul cut loose to hit Hamish Bennett for 16 runs as New Zealand were made to pay for their two missed run out opportunities, the second of which came in the last ball of the over.
Rahul brought up his fifty with an aerial extra cover drive as he looked to extend his purple patch.
In the next over, Shreyas Iyer hit Blair Tickner for back-to-back four and a six to bring down the equation to 16 from 24 balls after the 16th over.
Iyer then dispatched Sodhi for another maximum in the 17th over before holing out to Southee.
The job was done though as India needed six off the last three overs and Shivam Dube (8 not out) completed the formalities with a six off Southee in the 18th over as the tourists won with 15 balls to spare.
Earlier, the on-song Indian bowlers, led by Ravindra Jadeja, stifled New Zealand batters as they laboured to 132/5 in the allotted 20 overs.
Jadeja returned best figures of 2/18 in his quota of four overs as Jasprit Bumrah (1/21 in 4 overs), Shardul Thakur (1/21 in 2 overs) and Shivam Dube 1/16 in 2 overs) got one wicket apiece. Mohammed Shami was wicketless but gave away just 22 runs in his four overs and bowled superbly to deny Kiwis any advantage.
Tim Seifert (33 not out)and Martin Guptill (33) top-scored for the Black Caps.
Skipper Kane Williamson and Ross Taylor failed to middle the ball and looked off colour after they asked India to field first.
Guptill and Colin Munro gave the hosts a good start by adding 48 runs together for the opening wicket. Guptill tried to go for one too many and holed out to Indian skipper Virat Kohli at mid-off helping Thakur with a wicket.
Williamson joined Munro in the middle but once Guptill fell, the scoring rate slowed down as both batsmen struggled to get going against spin and Shami's searing pace.
Munro (26) was removed by Dube as the batsman tried to change gears and was caught at extra cover by Kohli in the ninth over.
A Shami bouncer also hit Williamson on the helmet but the Black Caps' premier batsman seemed to shrug it off. Williamson (14) did not last long though, finding Yuzvendra Chahal at deep square leg as he tried to sweep Jadeja in the 13th over.
Just before Williamson, Colin de Grandhomme (3) was caught and bowled by Jadeja as New Zealand found themselves on 94/4 after 15 overs with the experienced Taylor and Seifert at the crease.
Seifert smashed Chahal for a four and a six in the 16th over as he looked to accelerate, but Jadeja was on top his game, as the all-rounder bowled an excellent 17th, conceding just six runs.
It was relentless pressure from India as Bumrah followed it up with a magnificient 18th over, conceding just three runs but the highlight was Kohli dropping a sitter at long on in the third ball.
Taylor was the batsman who got a second life, but the seasoned campaigner failed to make the most of it as Shami and Bumrah bowled near-perfect last two overs with just 14 runs coming off them.
Brief scores: New Zealand 132/5 in 20 overs (Martin Guptill 33, Tim Seifort 33; Ravindra Jadeja 2/18) vs India 135/3 in 17.3 overs (KL Rahul 57, Shreyas Iyer 44; Tim Southee 2/20)
( With inputs from IANS )