Colombo - Sri Lankan bowlers struck three times after batsman Dhananjaya de Silva steered the hosts to 244 with a century on day three of the rain-hit second Test against New Zealand Saturday.
Jeet Raval and skipper Kane Williamson departed early while Ross Taylor let go of his good start in New Zealand's first innings reply as the tourists reached 103 for three at tea in Colombo.
Tom Latham, on 55, and Henry Nicholls, on five, were batting at the break with New Zealand still trailing the hosts by 141 runs.
Off-spinner Dilruwan Perera opened the bowling for Sri Lanka and got the left-handed Raval caught at slip for nought soon after lunch.
Paceman Suranga Lakmal then got Williamson's prized scalp for 20 after the batsman edged an away-going delivery to be caught at second slip.
Latham and Taylor, who made 23, tried to steady the innings by putting together 50 runs before left-arm spinner Lasith Embuldeniya broke the partnership.
Embuldeniya drew Taylor out of his crease only for the batsman to edge the ball to slip.
Latham stood strong as he used his feet to good effect against the spinners, reaching his half-century with a well-executed sweep off Embuldeniya.
Earlier De Silva moved from his overnight 32 to 109 after Sri Lanka resumed their first innings on 144 for six.
Kiwi pacemen Tim Southee and Trent Boult shared seven wickets between them to help bowl out the hosts in 90.2 overs with numerous rain interruptions.
Southee returned figures of 4-63 while Boult took three wickets including De Silva who was the last man out, bowled off an inside edge.
De Silva, who was dropped on nine by paceman Boult off his own bowling on day two, put on crucial partnerships including a 43-run stand for the eighth wicket with Suranga Lakmal.
The middle-order batsman, who hit 16 fours and two sixes in his 148-ball stay, reached his century with a boundary to third man off Southee as he raised his bat to the applauding dressing room.
Sri Lanka lead the two-match series 1-0.