Sri Lanka grabbed control of the game as they dominated all three sessions, building a healthy 147-run lead as they extended their first innings to 396 and then making deep inroads into the top order.
Rahul Dravid provided the only glimmer of hope for the tourists, looking solid on 46 not out. He was batting with the injured VVS Laxman on 17 at the close.
India started their second innings confidently as Virender Sehwag (34) and Gautam Gambhir (26) added a run-a-ball, 62-run opening stand.
However, pace bowler Dammika Prasad made an important double strike after tea with Thilan Samaraweera pulling off a sharp catch in the gully off Sehwag and Gambhir chopping on to his stumps.
Having dismissed the in-form openers, the Sri Lankans turned to their spinners and survival became a real battle on the dry pitch.
Saurav Ganguly was dropped at slip off Muttiah Muralitharan but was unable to capitalise as he missed a Muralitharan doosra and was trapped lbw for 18.
Ajantha Mendis, the leading wicket-taker of the series, then left India in deep trouble on 131 for five as he won leg-before decisions against both Parthiv Patel (one) and Sachin Tendulkar (14).
The two wickets carried Mendis to a series tally of 25 wickets, breaking the previous record for the most wickets in a debut series held by English seamer Alec Bedser, who took 24 wickets against India in 1946.
Earlier, Kumar Sangakkara top-scored for Sri Lanka with a brilliant, seven-hour 144 that spanned 288 deliveries and included 14 boundaries.
Sangakkara and Prasanna 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, when he was caught behind by Parthiv Patel off leg spinner Anil Kumble.
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 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 spinner Harbhajan claimed 3-104 and Kumble took 3-123.
The series is tied at 1-1.