|Harbhajan traps Dilshan lbw before replays showed the decision to be wrong [AFP]
India tightened their grip on the fourth day of the third and final Test in Mumbai despite an unbeaten century from Sri Lanka captain Kumar Sangakkara.
Paceman Zaheer Khan struck twice in quick succession to help reduce Sri Lanka to 274 for six in their second innings on Saturday, still needing 59 to wipe out the first innings deficit.
The left-handed Sangakkara hit 133 and shared in three solid partnerships but Zaheer dismissed Mahela Jayawardene for 12 and Thilan Samaraweera for a duck to give India the edge.
India, who lead 1-0 in the series, are bidding for a victory that would secure their spot at the top of the Test rankings.
Starting the day 322 runs behind, first-innngs century-maker Tillakaratne Dilshan (16) was the first man out, falling to off-spinner Harbhajan Singh for the second time in the match.
Sri Lanka first innings 393
India first innings 726-9 dec
Sri Lanka second innings (o/n 11-0)
T Paranavitana lbw b Sreesanth 54
T Dilshan lbw b Harbhajan 16
K Sangakkara not out 133
M Jayawardene c Dhoni b Zaheer 12
T Samaraweera c Laxman b Zaheer 0
A Mathews c Dhoni b Ojha 5
P Jayawardene lbw b Ojha 32
N Kulasekara not out 9
Total (for 6, 93 overs) 274
FoW 1-29 2-119 3-135 4-137 5-144 6-208
The opener was given out lbw although television replays indicated the ball was missing leg stump.
Sangakkara, who recorded his 21st Test hundred, shared in a 90-run stand with opener Tharanga Paranavitana (54) who struck his second half century of the match.
Medium-pacer Shanthakumaran Sreesanth, who took six wickets in the victorious second Test, dismissed Paranavitana lbw in his first over after lunch.
Zaheer then struck in a magnificent five-over spell, in which he conceded just three runs.
Using the bounce on offer, Zaheer dismissed Jayawardene caught behind and Samaraweera caught at slip by VVS Laxman.
All-rounder Angelo Matthews , who made 99 in the first innings, fell to left-arm spinner Pragyan Ojha just before lunch for five as Sri Lanka lost three wickets for nine runs to slip to 144 for five.
The Indian spinners led by Harbhajan gained lift and turn but Sangakkara batted beautifully, hitting 19 fours and a six, as he put on 64 for the sixth wicket with Prasanna Jayawardene (32).
Ojha dismissed wicketkeeper Jayawardene lbw, raising hopes of an early finish to the innings but Kulasekara gave Sangakkara admirable company as the the skipper passed 1,000 runs for the calendar year.
Sangakkara reached his century with a boundary off Zaheer, a superbly timed on-drive.
Sri Lanka, yet to register a first Test win on Indian soil, made 393 in their first innings.
India hold a 1-0 lead in the series after they won the second Test by an innings and 144 runs. The first Test ended in a draw.