Martin Guptill rebounded from a horror Australian series with his third century to guide New Zealand to a strong position on the opening day of the first Test against Sri Lanka on Thursday.
On a Dunedin pitch said to be ripe for seam bowlers, New Zealand responded to losing the toss by amassing 409 for eight.
Opener Guptill contributed 156 before he fell just before stumps, the ever-reliable Kane Williamson made 88 and Brendon McCullum 75 as New Zealand exposed the rawness of the Sri Lanka line-up.
The green wicket suggested bowlers would rule but when Sri Lanka captain Angelo Mathews won the toss and made New Zealand bat he was let down by his attack.
New Zealand were 229 for two at tea before Sri Lanka fought back in the final session when they took six wickets, but for an expensive 180 runs.
There were only seven maiden overs bowled and New Zealand cracked 57 fours, of which Guptill contributed 21.
His third century came 41 innings and four years after he last posted three figures against Zimbabwe and he was dismissed 33 runs short of his highest score, 189 against Bangladesh in 2010.
Inconsistent form saw him out of the Black Caps for two years before the short-form of the game resurrected his career when he played a starring role in the World Cup earlier this year.
Determined to make amends for a poor showing in the recent series in Australia, in which he averaged just over 13, Guptill took a careful look at the first eight balls from Sri Lanka before getting off the mark with an off-drive to the boundary.
In an innings filled with elegant shots, he used the same front foot stroke to bring up his 100 when he drove Suranga Lakmal to the boundary.
There were a few chances — two shaky edges and a near run out early in the innings and two lbw shouts on 78.
Had Sri Lanka appealed the second one, replays showed the not out decision may have been overturned.
But with luck going his way, Guptill was able to carry on, sharing a 173-run partnership with Williamson, a New Zealand record for the second wicket against Sri Lanka, then adding 89 with McCullum.
He was eventually undone six overs from stumps when Mathews swung the ball away from Guptill who feathered a catch to wicketkeeper Dinesh Chandimal.
Williamson fell on the last ball before tea, lashing out at a rough delivery from Nuwan Pradeep to be caught in slips by Dimuth Karunaratne reaching high above his head.
He left the ground requiring only eight more runs to become the fifth player to reach 1,000 runs this calendar year.
McCullum, who like Guptill failed to fire in Australia, also found the Sri Lankan attack more to his liking.
He was at his belligerent best as he raced from 35 to 50 with a six, two fours and a single in successive deliveries from Chameera.
He reached 75 in 57 balls and belted 13 fours and a six before Mathews turned to Milinda Siriwardana, his seventh bowler for the day.
With his third delivery in his third Test, Siriwardana bowled full on the leg side and McCullum sent a top edge to Kithuruwan Vithanage at deep-square leg.
For Sri Lanka, Suranga Lakmal took two for 69 while Nuwan Pradeep and 23-year-old Dushmantha Chameera, both finished with two for 101.