Kane Williamson became the second New Zealand batsman to score 1,000 Test runs in a calendar year as the hosts built a commanding 308-run lead in Sri Lanka at the end of the game on the third day of the first Test in Dunedin.
Williamson, who reached the milestone when it surpassed eight races, was 48 not to close with Tom Latham 72 as New Zealand ended the day on a cold and windy University Oval 171 by one.
Martin Guptill (46) was the only batsman to be dismissed in second innings of the hosts when a delivery arm spinner Rangana Herath just left rebounded, sunk by the window and fell to his stumps.
Guptill, who scored 156 in the first innings, fell after a 79-run opening partnership with Latham, New Zealand had given a perfect start to build on its 137 first innings lead managed with a view to the creation of Sri Lanka a target above 400.
Williamson, who had started in 992 races this year, uses his feet to hit Herath to long on fence to go from seven to accomplish the feat.
Captain Brendon McCullum was the first New Zealand batsman to achieve the brand in 2014.
Latham, who had a series of starts without kicking a big hit in the recent series against Australia conducted, scored his seventh half century to prove that he and Guptill were cautious before tea time after the pace of implementation accelerated.
The rain is expected to Dunedin for the fourth day.