Kusal Mendis scored the fastest fifty by an overseas player in a Test in New Zealand as Sri Lanka reached stumps on 305 for 6.
Dhananjaya de Silva was unbeaten on 39 and Kasun Rajitha also not out on a career-best 16.
In conditions that offered swing and seam movement, New Zealand employed a quintet of fast-bowlers, but inconsistency, particularly in the case of Blair Tickner and Neil Wagner, meant the hosts failed to capitalize on the early wicket of Oshada Fernando, allowing Mendis to take control.
Mendis scored his half century in 40 balls, a ball faster than the previous record held by Australia's Steven Smith, as the right-handed batter remarkably upped the scoring rate in the second hour of the play.
With just four runs off his first 15 deliveries, Mendis took three boundaries off a Matt Henry over, before back-to-back fours off Tim Southee took him to 27 off 27.
The boundaries continued to flow for Mendis, cruising to his half-century with an 11th four. He continued in the same vein as Sri Lanka sat pretty on 120 for 1 at lunch, at a remarkable run rate of five runs an over -- Mendis scoring 15 of Sri Lanka's 21 boundaries in that first session.
Captain Dimuth Karunaratne in contrast reached his half-century in 83 balls, but both batsmen fell in quick succession after lunch ending a 137-run second-wicket partnership, Sri Lanka slipping to 151 for 3.
A partnership of 82 between Angelo Mathews and Dinesh Chandimal ensured Sri Lanka didn’t give up too much ground, although the scoring rate dipped to a little over 4 runs an over.
Tim Southee ended that partnership having Chandimal chasing a delivery outside off stump and caught behind for 39.
Mathews looked set for a 39th Test half-century, but edged Matt Henry to the slip cordon, dismissed for a patient 47.
Niroshan Dickwella showed no appetite to settle in and build on the foundation provided to him, trapped leg before wicket to Michael Bracewell, for 7, with even Rajitha proving more use with the bat with his unbeaten 16.