Dinesh Chandimal and Dimuth Karunaratne forged an unbroken 128-run partnership to propel hosts Sri Lanka to 134-1 at tea on day three of the first Test against New Zealand on Friday.
Both made half-centuries as the home team dominated the afternoon session in Galle, giving Sri Lanka a lead of 99.
Karunaratne (72) was on song, punishing loose deliveries and forcing New Zealand to spread the field to protect the boundaries. Chandimal (54) was more conservative.
Rookie New Zealand pace bowler William O'Rourke struck early to send back opener Pathum Nissanka for two in the morning, after the visitors were all out for 340.
The 23-year-old O'Rourke dismissed Nissanka in his second over when the batsman edged a bouncer to a diving Tim Southee at second slip.
O'Rourke had already impressed for the Kiwis with his second five-wicket haul from just three Test appearances during the first innings.
New Zealand resumed on 255-4 but lost their remaining wickets quickly despite a fightback from wicketkeeper Glenn Phillips, who made 49 off 50 balls.
It was the first time the Kiwis had managed to post a score above 300 in Galle, where they have lost all four of their previous Test encounters.
Sri Lanka drew first blood in the morning when Tom Blundell was given out caught after a review, ending a solid 73-run partnership for the fifth wicket with Daryl Mitchell.
Mitchell went on to post the third half-century of the innings for New Zealand after staring down the spinners.
He was eventually run out on 57 when he responded to a risky call by Phillips, who miscalculated a single following a soft push to the covers.
The second new ball turned the tables for Sri Lanka, with Ramesh Mendis and Prabath Jayasuriya able to find bounce.
Jayasuriya took four wickets, including that of top-scoring opener Tom Latham for 70, while Ramesh bagged three.