Resuming on 251 for six, Sri Lanka batted positively during the first two sessions with wicketkeeper Prasanna Jayawardene (49) and debut paceman Dammika Prasad (36) both making useful contributions.
India then went on to reach the tea interval on 57 without loss, still trailing by 90 runs.
In-form opener Virender Sehwag raced to 30 not out off 25 balls with six fours and Gautam Gambhir was unbeaten on 24.
Sangakkara and Jayawardene started the third morning well for Sri Lanka, extending their seventh-wicket partnership to 80.
India were not helped by the non-availability of injured fast bowler Ishant Sharma, who hobbled off the field in the final session on Saturday.
Sharma's absence forced India to give the new ball to part-time medium pacer Saurav Ganguly.
The only positive of the session for India was the wicket of Sangakkara in the second hour, caught behind by Parthiv Patel off leg spinner Anil Kumble.
Sangakkara's marathon innings spanned 288 deliveries and included 14 boundaries.
As Sri Lanka's batsmen raised the tempo, India became increasingly ragged in the field with several errors.
There was also a missed run out chance off Jayawardene on 26 due to a wayward throw from Rohit Sharma.
Jayawardene and Prasad extended their partnership to 43 before Jayawardene clipped a Zaheer Khan delivery down to Harbhajan Singh at deep backward square leg.
Jayawardene's useful 49 came from 116 deliveries and included five fours.
Prasad and Ajantha Mendis (17) swung the bat before the former was stumped and the latter trapped lbw while sweeping.
Left-armer Khan finished with 3-105 from 32 overs while spinners Harbhajan claimed 3-104 and Kumble took 3-123.