DUNEDIN - Kane Williamson joined the elite 1,000 runs-a-year club Saturday 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. Although Sri Lanka have their backs to the wall, forecast rain and an easy wicket meant it was crucial for New Zealand to get the timing of their declaration right, according to bowling spearhead Tim Southee. "With the new ball, it's important for us to try and make early inroads," he said. "It's not going to come easy. If batsmen get in on this wicket there's not too many demons in it so we're going to have to work extremely hard to take 10 wickets."

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 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 Southee.

Southee struck again in his next over when he had Kithuruwan Vithanage caught behind for 22. Siriwardana and Herath emerged from the setback to produce a stubborn 43-run stand for the seventh wicket. The 30-year-old Siriwardana, who made his Test debut only 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 Africa-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.

Scoreboard

SRI LANKA 1ST INNINGS:

(OVERNIGHT 197-4)

D. Karunaratne c Watling b Santner 84

K. Mendis c Watling b Boult 8

U. Jayasundera c Watling b Wagner 1

D. Chandimal c Guptill b Southee 83

A. Mathews c Watling b Southee 2

K. Vithanage c Watling b Southee 22

M. Siriwardana c Taylor b Wagner 35

R. Herath c Boult b Wagner 15

D. Chameera c Taylor b Boult 14

S. Lakmal not out 18

N. Pradeep c Watling b Santner 3

EXTRAS: (b1, lb4, nb4) 9

TOTAL: (for 10 wickets, 117.1 overs) 294

FOW: 1-19, 2-29, 3-151, 4-156, 5-198, 6-209, 7-252, 8-273, 9-287, 10-294.

BOWLING: Boult 22-7-52-2, Southee 27-4-71-3, Bracewell 21-6-42-0, Wagner 25-5-87-3, Santner 21.1-8-37-2, Williamson 1-1-0-0.

NEW ZEALAND 2ND INNINGS:

M. Guptill b Herath 46

T. Latham not out 72

K. Williamson not out 48

EXTRAS: (b1, nb4) 5

TOTAL: (1 wicket, 48 overs) 171

FOW: 1-79

BOWLING: Lakmal 9-0-26-0, Mathews 4-1-4-0, Chameera 10-0-40-0, Pradeep 9-1-29-0, Herath 8-1-39-1, Siriwardana 7-0-28-0, Jayasundera 1-0-4-0.

TOSS: Sri Lanka

UMPIRES: Richard Kettleborough (ENG), Nigel Llong (ENG)

TV UMPIRE: Paul Reiffel (AUS)

MATCH REFEREE: David Boon (AUS)