Sri Lanka seized control of the second Test against New Zealand on Friday as they reached 157 for two, a lead of 339 runs, at stumps on Day 3.
Spinners Rangana Herath and Muttiah Muralitharan combined to take six wickets in dismissing New Zealand for 234 on the third morning, putting the hosts on course for a series sweep.
The left-hander shared an unbroken partnership of 68 with Mahela Jayawardene, who scored 23 not out, before rain curtailed the day's play 12 overs early.
Tillakaratne Dilshan was the first casualty of the second innings, caught for 33 off spinner Jeetan Patel.
Just before tea, opener Tharanga Paranavitana (34) was adjudged to have gloved an attempted sweep off Daniel Vettori and was given out caught behind.
New Zealand, trailing 0-1 in the two-game series, resumed on 159 for five before losing their remaining batsmen for 51 runs as Sri Lanka forged a formidable 182-run lead.
Off spinner Muralitharan claimed 3-71 from 25.4 overs and left-armer Herath took 3-70 from 34 overs.
Sri Lanka reached the lunch interval on two without loss in their second innings with both Dilshan and Tharanga Paranavitana on one not out.
Ross Taylor was New Zealand's top scorer with a three-hour 81 from 155 balls with 10 boundaries.
Brendon McCullum (18) was the first to fall in the morning as he edged Muralitharan to Mahela Jayawardene at slip, the former captain's 150th catch in Test cricket.
Herath then claimed the key scalp of Taylor, the right-hander edging behind.
New Zealand captain Daniel Vettori rallied the visitors briefly with 23, helping his team to avoid the follow on, before Chamara Kapugedera held on to a juggling catch at short leg off part-time spinner Dilshan.
Herath and Muralitharan quickly mopped up the tail, with Jacob Oram out for 24 and Iain O'Brien lbw for four.