Samaraweera scored a patient hundred
Thilan Samaraweera's patient hundred guided Sri Lanka to a comfortable total (425) in their first innings.
However, Virender Sehwag led a strong Indian fightback with a blistering unbeaten 97, helping the visitors end day two on a comfortable 180 for two, to more or less restore balance.
Samaraweera's century came off 229 balls and comprised 10 boundaries.
Having put on 84 runs for the fourth wicket with Mahela Jayawardene a day earlier, Samaraweera put on another 89 runs for the fifth with Angelo Mathews (45).
Samaraweera remained unbeaten on 137 which he made from 288 balls and with the help of 12 boundaries and a six.
Image: Sri Lanka's Thilan Samaraweera raises his bat and helmet to celebrate scoring his century against India
Mathews chipped in with 45
All-rounder Angelo Mathews also chipped in with 45 runs, which included six fours, down the order to help build a reasonably formidable total for the hosts on a wicket that has not been too easy to negotiate.
More importantly, he helped Samaraweera take Sri Lanka to a total which if not formidable was safe.
Once Samaraweera and Mathews settled down, it became rather easy for them to score off the Indian pace combination.
Image: Sri Lanka's Angelo Mathews plays a shot during the second day of their third and final test cricket match against India in Colombo
Ojha had a four-wicket haul
Pragyan Ojha scalped two quick wickets before lunch.
After toiling hard for most of the session, Ojha provided the much-needed breakthrough for the visitors when he trapped Mathews leg-before 45.
Mathews played for the turn which wasn't there and got trapped.
Ojha, who picked up two of the four wickets that fell on the opening day, then dismissed Sri Lankan wicketkeeper Prasanna Jayawardene (9) in a similar fashion.
The Sri Lankan was trapped while attempting a sweep.
The action replays showed the ball would have hit the middle stump.
Image: India's Pragyan Ojha (L) celebrates taking the wicket of Sri Lanka's Angelo Mathews with teammate Suresh Raina
Ishant struck twice after lunch
For the Indians, although Ishant Sharma and Abhimanyu Mithun extracted a bit of bounce from the pitch early on, they could not provide any breakthrough.
And once Samaraweera and Mathews settled down, it became rather easy for them to score off the Indian pace combination, forcing visiting skipper Mahendra Singh Dhoni to introduce the spinners.
Ishant, however, struck after lunch.
He got Ajantha Mendis when the batsman stabbed it to gully where Suresh Raina made no mistake.
Ishant then got his third wicket when Chanaka Welegedera failed to gauge a short pitch bouncer that took the edge of his gloves and went to the wicket keeper for a fairly straightforward catch.
Image: -India's Ishant Sharma (3rd R) celebrate taking the wicket of Sri Lanka's Ajantha Mendis with teammates
Post-lunch session was the most productive for India
Ishant Sharma and Pragyan Ojha thus shared the spoils with two wickets apiece as Indian bowlers got their mojo back to bowl out Sri Lanka for 425 in their first innings on the second day.
Besides Ishant (3 for 72) and Ojha (4 for 115), leggie Amit Mishra and part-timer Virender Sehwag claimed one wicket apiece as India removed the last six Sri Lankan wickets for 132 runs and in 51 overs.
The post-lunch session was the most productive session for India as they took four wickets at the expense of 56 runs.
Image: Teammates congratulate India's Pragyan Ojha (2nd R) after he took four Sri Lanka's wickets as they walk off the field
Sehwag dominated the final session
Virender Sehwag batted with his customary flourish and was just three runs short of what could be his 21st century as the day's play ended.
The dashing Indian opener, who sent the home team bowlers for a leather hunt in the final session, consumed just 87 balls for his 97, hitting 17 fours.
He also became the sixth Indian to score 7000 Test runs when he reached 70.
Giving company to Sehwag at stumps was milestone man Sachin Tendulkar (40) who has become the most-capped Test player, surpassing former Australian captain Steve Waugh's 168 appearances.
Murali Vijay (14) and Rahul Dravid (23) were the two batsmen dismissed. India now trail Sri Lanka by 245 runs with eight first innings wickets intact.
Coming together at 92 for two, Sehwag and Tendulkar have shared 88 runs for the unfinished third wicket stand.
Image: Virender Sehwag