Off-spinner Narine finished the fourth day with 2-67 from 26 overs including the scalp of Guptill, and Roach removed McCullum, as the New Zealanders reached 199 for three in their second innings – a lead of 28 – at the close.
Gaining limited assistance from the hard, true Vivian Richards Cricket Ground pitch, the Windies bowlers were frustrated for more than two hours, as McCullum and Guptill put on 123 for the second wicket.
But Narine and Roach enhanced the Caribbean side’s chances of a making a last-day charge for victory on Sunday, when they scalped both of them in the final session.
This unfolded after West Indies captain Darren Sammy hit a belligerent, even 50 to increase his Test career aggregate to 1,034 runs, as his side were dismissed for 522 about two minutes before the scheduled lunch interval to gain a first innings lead of 171.
Narine then claimed the only wicket the Windies collected before tea, after Guptill and fellow opener Daniel Flynn gave the visitors a solid start.
Narine, the wrecker-in-chief of the New Zealand first innings, grabbed the scalp of Flynn, as the Black Caps reached 92 for one at the break.
After Ravi Rampaul and Kemar Roach failed to make an impact with the new ball, Narine made the breakthrough when Flynn was trapped lbw for 20 playing back and down the wrong line.
But the hosts ran into a roadblock, when Guptill and McCullum spent the remainder of the afternoon session and an hour-and-a-quarter in the final session in consolidation mode.
West Indies suffered a bit of misfortune, when Roach had Guptill, on 27, caught at short mid-wicket in the first over after tea.
The batsman however, gained a reprieve, when umpire Richard Kettleborough of England asked for a review of the dismissal and TV replays showed the Windies fast bowler had delivered a no-ball.
This deflated the home team, but Guptill grew in confidence, reaching his second half-century of the match from 115 balls with a whip through square leg for a single off Narine, and McCullum followed suit with his 50 from 92 balls, when he cut the last of three successive boundaries off Marlon Samuels’ part-time off-spin through backward point.
Just when things were beginning to look discouraging for West Indies, Narine had Guptill caught at forward short leg playing defensively forward. He batted 197 minutes, faced 151 balls and struck seven fours.
Almost an hour later, Roach was brought back for a third spell and bowled McCullum off the inside edge in the second, after the batsman had struck eight boundaries from 139 balls in 187 minutes.
Earlier, Sammy struck four fours and three sixes from 80 balls in 114 minutes, as the Windies stretched their lead after resuming on their overnight total of 442 for six.
He reached his 50 from 79 balls, when he slog/swept New Zealand’s bespectacled, champion left-arm spinner Daniel Vettori over mid-wicket for his last six.
But Sammy gave a tame return catch, when he tried to repeat the stroke off the very next delivery from the same bowler and got a steepling top-edge.
He and Narsingh Deonarine – with 79 – shared a valuable 69 for the seventh wicket before the Caribbean side lost their last four wickets for 25 runs in the space of 70 balls.
Sammy gave West Indies a bright start, when he flicked the first delivery of the day, from Doug Bracewell, through backward square leg for four.
He led his side’s charge with a few more bold strokes, including a flat six over mid-wicket off Vettori that landed in the car park, but Deonarine too, indulged himself, when he collected three fours from Martin’s 24th over.
Deonarine allowed Martin revenge, when he was bowled, playing on a full-length delivery two overs later. The Windies left-hander struck 10 fours and one six from 129 balls in 224 minutes.
In between periods of consolidation, Sammy continued to make merry, but neither he nor the rest of the bowlers could pile on enough pressure.
Martin was the pick of the New Zealand bowlers with 3-134 from 30 overs and Bracewell ended with 2-96 from 29.3 overs.
NEW ZEALAND 1st Innings 351
(M. Guptill 97; S. Narine 5-132)
WEST INDIES 1st Innings
(overnight 442 for six)
C. Gayle c McCullum b Williamson 150
K. Powell c wkpr van Wyk b Wagner 134
A. Fudadin c McCullum b Williamson 55
M. Samuels b Martin 28
S. Chanderpaul c wkpr van Wyk b Martin 0
N. Deonarine b Martin 79
+D. Ramdin b Bracewell 3
*D. Sammy c and b Vettori 50
S. Narine run out (Martin) 4
K. Roach not out 6
R. Rampaul lbw b Bracewell 1
Extras (lb9, nb3) 12
TOTAL (all out) 522
Fall of wickets: 1-254 (Gayle), 2-304 (Powell), 3-355 (Samuels), 4-355 (Chanderpaul), 5-410 (Fudadin), 6-426 (+Ramdin), 7-497 (Deonarine), 8-502 (Narine), 9-516 (*Sammy)
Bowling: Martin 30-9-134-3 (nb3); Bracewell 29.3-5-96-2; Wagner 33-8-112-1; Vettori 51-14-124-1; Williamson 20-2-47-2
NEW ZEALAND 2nd Innings
D. Flynn lbw b Narine 20
M. Guptill c Fudadin b Narine 67
B. McCullum b Roach 84
*R. Taylor not out 11
N. Wagner not out 4
Extras (b5, lb5, nb3) 13
TOTAL (3 wkts) 199
Fall of wickets: 1-47 (Flynn), 2-170 (Guptill), 3-194 (McCullum)
Bowling: Rampaul 6-0-25-0; Roach 13-2-44-1(nb3); Narine 26-5-67-2; *Sammy 12-3-24-0; Samuels 3-1-22-0; Deonarine 4-2-7-0
Position: New Zealand lead by 28 with seven second innings wickets standing
Umpires: R. Kettleborough (ENG), P. Reiffel (AUS)
TV umpire: M. Erasmus (SAF)
Match referee: R. Madugalle (SLK)
Reserve umpire: J. Wilson (WIS)