Sri Lanka took a 272-run lead over New Zealand with eight wickets in hand by tea on the third day of the second and final cricket Test in Colombo on Friday.
The hosts, who led by 182 runs in the first innings, were 90-2 in their second knock at the break and well-placed to set an unassailable target for the Kiwis at the Sinhalese Sports Club.
Skipper Kumar Sangakkara went to tea unbeaten on 20 and former captain Mahela Jayawardene had yet to score.
Openers Tillakaratne Dilshan and Tharanga Paranavitana gave Sri Lanka a flying start with a stand of 56 runs.
Dilshan, hero of the home team's first Test win in Galle, with knocks of 92 and 123 not out, made 33 before holing out in the deep off Jeetan Patel.
Paranavitana fell in the penultimate over before tea, caught down the leg-side by wicket-keeper Brendon McCullum off Daniel Vettori for 34.
Earlier, Sri Lanka spinners Muttiah Muralitharan and Rangana Herath shared six wickets as New Zealand were bowled out for 234 in their first innings in reply to Sri Lanka's 416.
Off-spinner Muralitharan, the world's most successful bowler, finished with three for 71 runs to take his record tally to 780 wickets.
Left-arm spinner Herath chipped in with three for 70, while seamer Thilan Thushara claimed two for 37.
New Zealand added 24 runs to their overnight score of 159-5 when the overnight pair of Ross Taylor and McCullum were dismissed in successive overs.
McCullum, who made 18, edged Muralitharan to the slip region where Mahela Jayawardene picked up his 150th Test catch.
Taylor, who survived at least three close appeals for leg-before during his knock of 81, was finally removed by Herath to a catch by wicket-keeper Prasanna Jayawardene.
Vettori and Jacob Oram added 43 for the eighth wicket to save their team from the follow-on when off-spinner Dilshan, replacing Muralitharan, struck with the fourth delivery.
Vettori, on 23, played tentatively forward and the ball went off the bat and pad to forward short-leg, where Chamara Kapugedera took the low catch at the second attempt.
Oram went soon after for 24 when he top-edged an ambitions reverse sweep off Herath for Kapugedera to take his second catch in the innings.
Muralitharan ended the innings by trapping Iain O'Brien leg-before for four.