Sri Lanka's Mahela Jayawardene scored an undefeated century as the hosts reached 293 for three at stumps on the first day of the first Test against New Zealand on Tuesday.
The 32-year-old right-hander shared big partnerships with Tillakaratne Dilshan and Thilan Samaraweera to pile up 108 from 217 deliveries, including 14 boundaries.
The former captain's century, the 26th of his 106-match Test career, steered the hosts into a commanding position as New Zealand's decision to bowl first backfired.
Dilshan, promoted to the opener's berth on his return to international cricket after a finger injury, struck 12 fours and one six in an entertaining 92 from 72 balls.
The pair rescued the hosts from a dreadful start, sharing a 118-run stand for the third wicket.
Middle order batsman Samaraweera carried on where Dilshan left off, stroking 82 from 167 balls with 11 boundaries during an unbroken fourth-wicket partnership that has reached 159 runs in 50.5 overs.
EARLY ADVANTAGE
Pace bowler Chris Martin, the best of the seamers with two for 59, gave the tourists an early advantage after they won the toss on an overcast morning and quickly reduced Sri Lanka to 16 for two.
Left-hander Tharanga Paranavitana edged a perfectly-pitched outswinger to be dismissed for a duck while skipper Kumar Sangakkara chipped a catch straight to square leg.
New Zealand's luck then changed for the worse and Dilshan unleashed a flurry of extravagant strokes, hammering 40 runs from seamer Ian O'Brien's four-over burst with the new ball.
He became the fastest Sri Lankan to bring up a test fifty, reaching the milestone in just 30 deliveries.
O'Brien then gained revenge for his early mauling when Dilshan chopped on to his stumps after lunch, whoch was the last wicket to fall on Tuesday.
Sri Lanka have recalled spinner Muttiah Muralitharan and wicket-keeper Prasanna Jayawardene to the team after their recovery from injuries.
The start of play was delayed for 90 minutes because of rain.