Tillakaratne reached 126 not out as the home side, responding to New Zealand's first innings of 515 for seven declared, closed on 424 for six as rain cut short the fourth day.
Sri Lanka had resumed on 267 for four. They got off to a shaky start when Mahela Jayawardene, facing the fifth ball of the day, was caught behind off fast bowler Jacob Oram without adding to his overnight 58.
But wicketkeeper Kaluwitharana, playing his first Test in two years, contributed 76, including 14 fours, during a 107-run stand for the sixth wicket before he was caught by Mathew Sinclair off spinner Paul Wiseman.
By contrast Tillakaratne, who scored 104 not out in his last Test against South Africa in November, was a model of patience. It was his 11th Test century.
The second and final Test begins in Kandy on May 3. New Zealand, ranked third in the world test rankings, have not won a series in Sri Lanka for 20 years.