In a match which New Zealand should have wrapped up much earlier, they faltered spectacularly at the start of their second innings.
Set a meagre target of 112 to win, New Zealand slumped to be 44-4 before Ross Taylor and Corey Anderson mounted a rescue partnership.
When rain resulted in tea being taken five minutes early, New Zealand were 79-4 with Anderson on 20 and Taylor on 16.
He struck first in the last over before lunch when wicketkeeper Denesh Ramdin snapped up a deft catch down the leg side to remove Peter Fulton.
More From This Section
Umpire Paul Reiffel turned down the appeal, but captain Darren Sammy went for a review which showed the New Zealand opener had a faint touch on the ball and the decision was overturned.
After lunch, Aaron Redmond (six) turned Shillingford into the hands of Narsingh Deonarine at leg slip and Hamish Rutherford (20) pulled the ball straight to Shannon Gabriel waiting at long on.
It was a performance far removed from the determination shown in their first innings, when New Zealand amassed 609-9 declared and then whittled the West Indies out for 213.
Forced to follow on on the third day, the West Indies found a rock in Darren Bravo, who made a career best 218 in guiding the tourists to 507 and ensuring New Zealand would bat again.
Neil Wagner returned the best bowling figures for New Zealand with three for 112 while Tim Southee, Trent Boult and Ish Sodhi took two wickets apiece.