New Zealand fast bowler Tim Southee grabbed three early wickets to leave Sri Lanka in trouble on the second day of the opening Test in Galle on Sunday.
Southee removed opener Tharanga Paranavitana and nightwatchman Suraj Randiv in his opening two overs, followed by Thilan Samaraweera.
Paceman Trent Boult put more pressure on Sri Lanka when he had Kumar Sangakkara (five) caught by Brendon McCullum at third slip to leave the hosts reeling on 20-4.
Sri Lanka recovered somewhat to go for lunch on 105-5 in their first innings in reply to the tourists' 221.
Skipper Mahela Jayawardene was unbeaten on 37 at the break with Angelo Mathews 23 not out. The pair have so far added 55.
Sri Lanka added 96 to their overnight total of 9-1 in a morning session dominated by the New Zealand pacemen.
Southee, who trapped debutant opener Dimuth Karunaratne leg-before for a duck on Saturday, struck with his fourth delivery on Sunday when he bowled Paranavitana for no score.
He got the third wicket in his next over, having Randiv caught by Martin Guptill at second slip after the batsman had added just six runs to his overnight score of three.
Southee had a chance to get another wicket, but skipper Ross Taylor reacted late at first slip to an edge from Samaraweera when the batsman was on seven.
But he did not have to wait long for his fourth, trapping Samaraweera (17) leg-before when the batsman offered no stroke to a delivery that came in.
New Zealand opener Brendon McCullum (68) and middle-order batsman Daniel Flynn (53) scored half-centuries on Saturday, while left-arm spinner Rangana Herath bagged five wickets for 65 for Sri Lanka.