Craig (four for 91) struck twice in the 28th over to remove Kieran Powell and Kirk Edwards before dismissing Kemar Roach and Sulieman Benn, while Southee (four for 19) snared the wickets of danger man Chris Gayle and Marlon Samuels in the same over shortly after lunch and then accounted for Denesh Ramdin and Shane Shillingford.
Shivnarine Chanderpaul's unbeaten 84 ensured the West Indies' 262 all out total was not considerably fewer and, after Brendon McCullum opted not to enforce the follow-on, the Black Caps overcame a shaky start to reach 14 for two at stumps - an overall lead of 260.
Southee almost gave New Zealand a perfect start to the day when Gayle edged behind early on but the ball fell agonisingly short of wicketkeeper BJ Watling's gloves.
Gayle took the Windies past 50 by pulling a short Craig delivery over midwicket for four, but the opening stand was broken with the score on 60 when Powell (28) misjudged a Craig slider to be trapped lbw to give the 27-year-old his first Test wicket.
Craig had his second two balls later when Edwards edged to Ross Taylor for a second-ball duck to leave West Indies floundering. Eight balls later and Ish Sodhi (one for 69) removed Darren Bravo (nought) when the all-rounder offered up a simple return catch.
Gayle relieved the pressure by hitting Craig for successive fours in the 30th over and he raised his bat to acknowledge notching his 35th Test fifty shortly after, before he and Chanderpaul took the West Indies to 97 for three at lunch.
The hosts were in trouble shortly after the restart as Southee struck twice in the 41st over.
The paceman got one to move slightly away from Gayle (64) and he edged behind where Watling took a straightforward catch. Two balls later and Samuels was trudging back to the pavilion without troubling the scorers after he was pinned in front by a quicker-than-usual delivery.
Chanderpaul and Ramdin batted sensibly in the aftermath, but Southee undid the hosts once again shortly before tea.
Ramdin (39) had coped with the pace and movement of Southee and Trent Boult but it was a back-of-the-hand slower delivery from the former that got the better of the West Indies skipper. He edged behind as the West Indies went into the tea interval on 176 for six.
Roach got off the mark by cover-driving a full Craig delivery for four when the action resumed, but that was the end of his scoring as two balls later he misread Craig's line and his inside edge looped up to Peter Fulton at leg slip.
Chanderpaul, running out of batting partners, achieved his fifty with a single to cover to give the Sabina Park crowd something to cheer in the afternoon.
Jerome Taylor (seven) began his innings in an aggressive manner by slogging the sixth ball he faced to the square-leg boundary. He then went after Boult (one for 67) but succeeded only in chipping to McCullum who dived forward to take a fine catch at short cover.
Benn's cameo of 17 from 21 deliveries was over when he tried to hit Craig over the top but was clean bowled. Sensing the end was nigh, Chanderpaul took the New Zealand bowlers to task and raced into the 80s with a flurry of boundaries.
Chanderpaul was left stranded 16 runs shy of his century as the West Indies' first innings was brought to a close when Shillingford nicked another teasing Southee delivery behind to give Watling his third dismissal of the innings.
New Zealand's second innings got off to the worse possible start when Fulton chased a wide Taylor delivery and succeeded only in edging to Ramdin who took a fine one-handed catch. It got worse for the tourists shortly after when Kane Williamson (two) was bowled after leaving a Roach in-swinger.
Tom Latham and Sodhi were on eight and four respectively as the tourists reached 14 for two at the close of play.
- Sports & Recreation
- Shivnarine Chanderpaul
- Chris Gayle
- Denesh Ramdin
- Kemar Roach
- Marlon Samuels