Dunedin: Kane Williamson joined the elite 1,000 runs-a-year club today as New Zealand built a commanding 308-run lead over Sri Lanka with two days remaining in the first Test in Dunedin.
Only the threat of rain and a flattening pitch loomed as possible barricades for New Zealand, who closed day three on 171 for one with nine wickets in hand.
Tom Latham was on 72 with master batsman Williamson on 48.
Williamson, who started his innings with 992 runs for the year, reached 1,000 driving Rangana Herath elegantly over mid-off to the boundary.
He joins England's Alastair Cook and Joe Root and Australians David Warner and Steve Smith as the only players to achieve the milestone in 2015 but his batting average of 94.54 is considerably superior to the other four.
Brendon McCullum, with 1,164 runs in 2014, is the only other New Zealander to score 1,000 runs in a calendar year.
Williamson's class shone as New Zealand ramped up their dominance over Sri Lanka, removing their last six wickets on Saturday to have the tourists all out for 294, 137 runs in arrears.
Guptill and Latham set about building on New Zealand's advantage, moving swiftly to 79 before Guptill's luck ran out when he was bowled by a shooter from Rangana Herath for 46.
The first-innings century-maker had earlier survived caught and bowled chances to Nuwan Pradeep and Suranga Lakmal and being dropped on 19 by Kusal Mendis at cover.
Latham, who posted his seventh Test 50 with a single off Milinda Siriwardana, has been content to build partnerships first with Guptill then an unbroken 92-run stand with Williamson.
Sri Lanka suffered a setback at the start of the day when they resumed their first innings at 197-4 and lost batting general Dinesh Chandimal with the first ball he faced.
The Sri Lankans had expected Chandimal to lead them within close range of New Zealand's 431, instead he was unable to add to his overnight 83 as he fell to Tim Southee.
Southee struck again in his next over when he had Kithuruwan Vithanage caught behind for 22.
Milinda Siriwardana and Herath emerged from the setback to produce a stubborn 43-run stand for the seventh wicket.
The 30-year-old Siriwardana, who only made his Test debut two months ago, had a reprieve on 29 when he was caught by a leaping Doug Bracewell on the long-leg boundary.
The apparent dismissal turned into a six when Bracewell fell backwards over the boundary rope.
However, Siriwardana was not to score again as four balls later he edged Neil Wagner to Ross Taylor at first slip.
Herath, who weathered a sustained short-ball barrage and took a cruel blow to the head, faced 74 deliveries before he was gone for 15.
The innings ended when leg-spinner Mitchell Santner had Pradeep caught behind to give wicketkeeper BJ Watling his sixth catch of the innings.
It is the second time the South African-born Watling has taken six catches in an innings, one short of the Test record of seven jointly held by Pakistan's Wasim Bari, New Zealander Ian Smith and England's Bob Taylor.
For New Zealand, Southee took three for 71 and Wagner three for 87.