Sri Lanka slumped to 43 for three wickets in reply to New Zealand's first innings of 412 at stumps on the second day of the second and final test on Monday.
After left-arm spinner Rangana Herath took 6-103 to end New Zealand's innings 15 minutes after tea at P. Sara Oval, Sri Lanka's top order struggled under overcast conditions against the new ball.
Tim Southee struck twice in his second over by dismissing former captains Tillakaratne Dilshan and Kumar Sangakkara. Dilshan was bowled through bat and pad, while Sangakkara was caught before scoring at fine leg when he attempted a pull shot.
The total became 12-3 when captain Mahela Jayawardene edged a ball from Trent Boult to Kane Williamson at gully.
Sri Lanka batsman Thilan Samaraweera is injured after splitting the webbing between the middle and ring finger on his right hand while attempting a catch off Jeetan Patel. Team manager Charith Senanayake said that he will bat only if required.
Earlier in the morning, Herath bowled superbly to help Sri Lanka bowl out New Zealand. The left-arm spinner, who took 11 wickets in the first test as Sri Lanka won by 10 wickets in Galle, troubled the New Zealand batsmen again with his control, variety and flight.
Kane Williamson joined captain Ross Taylor as the second century-maker in New Zealand's innings in the morning session with a boundary off Shaminda Eranga. He went on to post his career-best 135 before being trapped leg before wicket by Rangana Herath.
Herath also dismissed Taylor when the batsman mistimed a sweep shot and was out leg before wicket. Taylor made 142 and was involved in a 262-run stand with Williamson, a record for New Zealand in Sri Lanka for any wicket. The previous best partnership for New Zealand in Sri Lanka was the 246 runs for the sixth wicket between Martin Crowe and Richard Hadlee in 1987.
It was also the second highest partnership by a pair from any country in Sri Lanka, just behind the 287-run stand between Azhar Ali and Mohammad Hafeez earlier this year.
Sri Lanka leads 1-0 in the series.
New Zealand, which has lost its last five tests, hadn't previously posted a 400-plus total in the past nine matches.