Veteran batter Angelo Mathews has brought up a 14th test century, as Sri Lanka set New Zealand a run chase of 285 for victory in the first test at Christchurch.
At stumps on the fourth day, the Blackcaps are 28/1, after losing opener Devon Conway early in their pursuit.
Operating without injured fast bowler Neil Wagner, who broke down mid-over on Saturday, they struggled to make headway during the morning and afternoon sessions on day four, as their rivals arrived at tea with a 233-run advantage and five wickets still in hand.
After tea, the undermanned NZ attack wrapped up the Sri Lankan tail, taking the last five scalps for just 42 runs, the tourists seemed to accelerate towards a possible declaration.
Rookie speedster Blair Tickner had nightwatchman Prabath Jayasuriya caught behind by wicketkeeper Tom Blundell in the eighth over of the day, as he edged closer to a maiden five-wicket bag.
After lunch, captain Tim Southee consolidated his grip on No.2 all-time NZ wicket-taker, when he beat the defences of Dinesh Chandimal to hit off-stump, but the day has belonged to the tourists, who must now be considering their declaration.
Mathews began the day on 20 and reached his half-century off 139 balls, including five fours, then accelerated slightly, need just 87 balls for his next 50, with six more boundaries.
He and Chandimal added 105 runs for the fifth wicket, before the latter fell for 42, ushering Dhananhaya de Silva to the crease. Sri Lanka took tea at 251/5.
Soon after the resumption, Mathews became the sixth batter to fall, caught by Blundell off Matt Henry for 115. De Silva was left unbeaten on 47, but ran out of partners, as wicketkeeper Niroshan Dickwella became counterpart Blundell's fourth victim of the innings, also off Henry's bowling.
Henry had Kasun Rajitha trapped leg before wicket and then had a hand in the runout of Lahiru Kamara, after an accurate throw from Kane Williamson, who also took the catch that ended the innings, dismissing Asitha Fernando offf Southee.
After knocking off the Sri Lankan top order, Tickner was left stranded short of his five-wicket bag with figures of 4/100, as Southee and Henry chipped away wickets around him.
New Zealand faced an anxious period before stumps and lost Conway, when he offered a return catch to Rajitha in the fifth over.
After the excitement of England's high-octane 'Bazball' approach, the Sri Lankan approach was comparatively pedestrian at just 2.86 runs an over, as both sides marked time towards a fifth-day run chase for the home side.
Wagner failed his fitness test at the start of play, leaving captain Tim Southee with just three specialist bowlers, and allrounders Daryl Mitchell and Michael Bracewell. Matt Henry also needed stitches in his hand overnight, but persevered through the injury.
Sri Lanka 355 & 302 (Mathews 114, de Silva 47no, Chandimal 42; Tickner 4/100) NZ 373 & 28/1 (Latham 11no, Williamson 7no; Rajitha 1/5)
NZ need 257 runs to win on the fifth day