Kane Williamson became the second New Zealand batsman to score 1000 Test runs in a calendar year as the hosts built an imposing 308-run lead over Sri Lanka at the close of the third day's play of the first Test in Dunedin.
Williamson, who achieved the milestone when he surpassed eight runs, was 48 not at the close with Tom Latham on 72 as New Zealand ended the day at a chilly and windswept University Oval on 171 for one.
Martin Guptill (46) was the only batsman to be dismissed in the hosts' second innings when a delivery from left arm spinner Rangana Herath barely bounced, scuttled along the wicket and clattered into his stumps.
Guptill, who scored 156 in the first innings, fell after a 79-run opening partnership with Latham, having given New Zealand a perfect start to build on their 137-run first innings lead with an eye to setting Sri Lanka a target in excess off 400.
Williamson, who had started on 992 runs this year, used his feet to hit Herath down to the long on fence to move from seven and achieve the milestone.
Captain Brendon McCullum was the first New Zealand batsman to achieve the mark in 2014.
Latham, who had a series of starts without kicking on to a big score in the recently completed series against Australia, scored his seventh Test half century as he and Guptill were cautious before tea then accelerated the run rate afterwards.
Rain has been forecast for Dunedin for the fourth day.
The visitors had begun the day on 197-4 and while they lost two quick wickets in the first session, Milinda Siriwardana (35) and Herath (15) guided Sri Lanka past the follow-on target and then frustrated New Zealand's bowlers with the way they were able to occupy the crease.
Herath, who was subjected to a barrage of short pitched bowling, was finally caught in the deep by Trent Boult from a Neil Wagner bouncer, having withstood 74 deliveries and being struck in both the hand and head.
Dushmantha Chameera, who had been on six at lunch, was the ninth wicket to fall when he was caught by Ross Taylor at slip off Boult for 14, before Nuwan Pradeep became wicketkeeper BJ Watling's sixth catch of the innings for three.
Guptill, Williamson put NZ in strong position
World T20 2016: India and Pakistan in same group
1st Test: Chandimal, Karunaratne defy New Zealand
ICC World Twenty20 2016: The full schedule
Day-night Test, PIX: Hazlewood makes Kiwis suffer in Starc's absence