The Kiwis were quite comfortable in their chase but lost wickets of Tom Latham (69) and James Neesham (9) and Colin de Grandhomme (1) when they were close to the target. Taylor ensured that the host do not snatch yet another defeat from a strong position.
Earlier, sent into, Iyer (103 off 107 balls) scored his maiden ODI century, while KL Rahul (88 not out) and skipper Virat Kohli (51) made fine fifties in the first match of the three-game series.
Tim Southee (2/85) picked up two wickets for the hosts.
India: 347 for 4 in 50 overs (Shreyas Iyer 103, KL Rahul 88 not out, Virat Kohli 51; Tim Southee 2/85).
New Zealand: 348 for 6 in 48.1 overs. (R Taylor 109 not out, H Nicholls 78; K Yadav 2/84).