After the hosts built a 171-run first innings lead in Antigua with skipper Darren Sammy (50) and Narsingh Deonarine (79) ensuring they reached 522, the tourists needed to show plenty of resolve to save the Test.
Guptill (67) and Daniel Flynn put on 47 for the first wicket before Sunil Narine, who grabbed a five-wicket haul in the first innings, trapped the latter on the back foot lbw for 20.
Despite the wicket, New Zealand knuckled down with McCullum (84) and Guptill batting sensibly, exercising caution against Narine's spin as they looked to see the visitors through to the close of play without any more alarms.
However, Narine struck again, coming around the wicket and getting some bounce with a ball that struck Guptill's glove and was snapped up by Assad Fudadin at short leg.
The momentum shifted further towards the West Indies when McCullum, looking well set for a century, played on with an inside edge from Kemar Roach.
A lead of 28 runs with seven second innings wickets remaining ahead of Sunday's final day will require some disciplined batting from New Zealand against a West Indies attack that can sense victory.