Offspinner Harbhajan Singh picked up six wickets as India bowled out Sri Lanka for 292 to claim a 37-run first-innings lead on day three of the second Test today.
Sri Lanka resumed the third day at 5-215 hoping to overhaul India's first innings score of 329, but the host team's last five wickets fell for 77 runs and their innings was over by lunch.
Overnight batsmen captain Mahela Jayawardene and Prasanna Jayawardene batted sensibly for the first 13 overs of the day before a Singh delivery took the edge of Prasanna Jayawardene's bat, hit the pad and bounced into the hands of VVVS Laxman at forward-short-leg.
The pair had added 58 runs for the sixth wicket after a middle-order collapse on Friday saw four wickets fall for 55 runs.
The wicket marked Singh's 22nd five-wicket haul in test cricket.
India captain Anil Kumble struck in the next over when Chaminda Vaas (1) spooned an easy catch to Singh to leave Sri Lanka 7-255.
A partnership of 36 runs followed between Mahela Jayawardene and No.9 Nuwan Kulasekara to put Sri Lanka in with a chance of taking a first-inning lead, before Jayawardene (86) was caught behind off Kumble.
It was Mahela Jayawardene's 31st test half-century scored off 188 balls including 10 boundaries.
Sri Lanka's tailend spinners Ajantha Mendis and Muttiah Muralitharan both went for ducks, lbw to Kumble and caught off Harbhajan Singh respectively.
Sri Lanka can clinch the three-match series with victory in this Test, having won the first Test by an innings and 239 runs.