India lost hard-hitting opener Virender Sehwag in the sixth over before reaching 74-1 in their first innings at tea in reply to Sri Lanka's mammoth 600-6 declared.
Sehwag went for big shots against new-ball bowlers Chaminda Vaas and Nuwan Kulasekara, smashing five fours in his 16-ball 25 before perishing to a reckless shot.
He mistimed an attempted pull off Kulasekara and was caught by Malinda Waranpura at deep backward square-leg.
Sri Lanka skipper Mahela Jayawardene pressed spin sensation Ajantha Mendis into the attack after just 10 overs, but Gautam Gambhir (35 not out) and Rahul Dravid (14 not out) denied the hosts further success.
Mendis, who wrecked India with a six-wicket haul in the Asia Cup final in Karachi early this month, bowled only three overs for 12 runs before the break.
Sri Lanka's batting prowess was earlier on view as the hosts added 178 to their overnight total of 422-4 before declaring their innings closed in the post-lunch session.
Tillakaratne (125 not out) became the fourth Sri Lankan to hit a century in the innings after skipper Mahela Jayawardene, Warnapura and Thilan Samaraweera.
The middle-order batsman reached his fifth Test hundred in the last over of the morning session when he swung off-spinner Harbhajan Singh over mid-wicket for a four.
Dilshan made the most of the reprieve he earned on Thursday under a new experimental rule allowing players to seek a second opinion on umpiring decisions.
He was on one when given out caught behind off Zaheer by umpire Mark Benson of England, but asked the official to review the decision.
Benson consulted TV umpire Rudi Koertzen of South Africa before changing his decision as the ball had not made contact with the bat.
India struggled for success for the second successive day on a placid pitch as they could grab just two wickets in more than a session.
Their first success came when Samaraweera (127) cut left-arm fast bowler Zaheer Khan straight to Venkatsai Laxman at gully. The batsman added 16 to his overnight score of 111, hitting 18 fours in his 224-ball knock.
Dilshan gathered runs comfortably, playing attractive shots during his 170-ball knock containing one six and 12 fours.
He struck the first six of the morning, swinging leg-spinner Anil Kumble over deep square-leg and then driving the next ball through the covers for a four. He added 91 for the sixth wicket with Prasanna Jayawardene (30).