Having won the toss and opted to bat, Suzie Bates constructed a well-made 110 to give the White Ferns a total of 225-8.
In reply, the West Indies looked to be cruising at 212-6 and needed just 14 runs from 30 balls but a late flurry of wickets allowed the White Ferns back into the match, before claiming the final dismissal in the last over to grab victory.
The West Indies pursuit had looked on track for much of the innings, with the dangerous duo of Stefanie Taylor (38) and Deandra Dottin (65) taking their side through to 105-3.
Lea Tahuhu's dismissal of Taylor saw captain Merissa Aguilleira (43) come to the crease and along with Dottin she took control of the game.
At 197-5 from 41 overs the result looked all but certain to be in favour of the home side, but a late rally from the White Ferns bowling unit, led by Nicola Browne with three key wickets, kept the game alive.
The match finished in drama, with Shaquana Qunityne run-out after backing up too far. Browne led the wickets column, while Morna Nielsen was the most economical with figures of 2-22 from 10 overs.
Earlier, the White Ferns opening pair of Bates and Nat Dodd (18) made steady progress to reach 50 without loss after 15 overs. The visitors continued to keep wickets in hand, with Bates building a strong platform to launch from.
In the 43rd over the 26-year-old brought up her fifth ODI ton off 114 balls. Currently ranked the No 1 ODI batsman in the world, Bates now has an average of 74.43 in 2013 and has had only one score under 30 since March of last year.
The two sides meet again on Wednesday morning (NZT) for the second of three ODIs.