A half-century from Chamara Silva helped Sri Lanka to a formidable lead of 363 runs at the end of day two in the second and final test against New Zealand in Wellington on Saturday.
His unbeaten 79, with Prasanna Jaywardene on 22, helped the Sri Lankans to 225 for five after the home side were skittled for just 130 in the morning session as the tourists bid to square the series.
Silva's second fifty of the match in only his second test came off 84 balls and included six fours.
After New Zealand slumped from their overnight 66 for four to 130 all out, giving the tourists a first-innings lead of 138, an opening stand of 44 between Sanath Jayasuriya and Upul Tharanga looked set to put them out of reach before Tharanga was trapped in front by Chris Martin for 20.
Kumar Sangakkara's bid for a third successive century was ended early when he was caught for eight off Shane Bond's bowling and Jayasuriya edged to Kiwi skipper Stephen Fleming off Daniel Vettori to make it 62 for three.
Chamara Kapugedera was then bowled by a straight one from Vettori for 27.
Skipper Mahela Jayawardene was unhappy to be given out for 31 when he edged behind to stand-in wicketkeeper Mathew Sinclair, deputising for the injured Brendon McCullum, to make it 168 for five before Silva and Jayawardene shared an unbroken stand of 57.
Earlier, spinner Muttiah Muralitharan claimed four wickets and paceman Lasith Malinga completed a five-wicket haul as New Zealand were dismissed in just 39.1overs at the Basin Reserve.
The Kiwis never hit their stride and the lively Malinga took his fourth wicket of the innings when he bowled Sinclair for six to make it 75 for five.
Malinga repeated the trick to dismiss Vettori for a duck and complete career-best match figures of five for 68, before Muralitharan trapped Jacob Oram, who was batting with a runner, and James Franklin lbw, both for one.
Muralitharan won another leg before verdict against Bond (eight) before the defiant McCullum, who suffered a finger injury and did not take his place to field, was last man out for 43 from 61 balls when he charged at the Sri Lankan off-spinner and was bowled. Muralitharan finished with four for 31.
Sri Lanka were bowled out for 268 in their first innings on Friday. New Zealand won the first test in Christchurch by five wickets.