Shillingford scored the second fastest 50 in test cricket, taking just 25 balls to reach the milestone. He fell one ball short of Jacques Kallis' record of 24 balls.
The victory is New Zealand's 12th in 43 tests against the West Indies and the third in a row.
Tim Southee took two wickets in his first two overs to give New Zealand an ideal start after declaring at 156 for eight before tea.
Southee picked up from where he left off in the first innings, when he took 4-19, to dismiss openers Kieran Powell (0) and Chris Gayle (10) in consecutive overs.
Craig, who earlier hit a six off his first ball faced in test cricket, also continued his fine form from the first innings (4-91) to get the wicket of Kirk Edwards who was caught in close by Jimmy Neesham for 14 - leaving the hosts 30 for three.
Craig then struck twice in the 18th over, first forcing an edge from Darren Bravo to Watling for 12 and then Marlon Samuels two balls later for a duck. Craig took his fourth wicket late in the day with Kemar Roach caught behind for 19. That made Craig the first New Zealander to take eight wickets in a match on debut.
Sodhi took the eighth West Indies wicket, Denesh Ramdin bowled for 33, before adding his third two overs later of Jerome Taylor (18).
Earlier Opener Tom Latham top scored for New Zealand, scoring his second half century of the match with 73.
New Zealand resumed day four on 14-2, and went to the lunch break on 96-5 in their second innings. Fast bowler Jerome Taylor was the best of the hosts' bowlers with 3-13.
Taylor, who removed Peter Fulton late on day three, added the scalps of nightwatchman Ish Sodhi and Ross Taylor in successive balls as the Kiwis dipped to 14-4.
Sodhi was leg before wicket to an outswinger while Taylor fell in the same manner to an inswinger.
Captain Brendon McCullum survived the hat-trick ball and revived the innings in a stand of 41 with Latham.
McCullum scored 17 before he was bowled through the gate by a big-spinning off break from Shane Shillingford as the hosts mounted a fightback at 55-5.
But Latham dropped anchor and found an able ally in Neesham to keep New Zealand in the ascendancy.
The pair to New Zealand through to 118 after lunch before Neesham, who made a ton in the first innings, fell for 20 to Shillingford.
New Zealand wickets fell steadily after that. Latham and BJ Watling put on 25 before Latham edged a wide ball to Chris Gayle in the slips, ending his 181 ball innings.
Tim Southee was the last wicket to fall, for 3, with Watling (22) and Craig (7) at the crease when McCullum declared.
For Herald app users, click here for live scoreboard
- AP