(CNN) -- An early breakthrough from Zaheer Khan gave India the edge on day two of the second Test against Sri Lanka in Kanpur after another fine display from the home batsmen.
India finished on 642 all out with Rahul Dravid hitting 144 to claim his 28th Test century while VVS Laxman and Yuvraj Singh both contributed half-centuries with 63 and 67 runs respectively.
The efforts of Rangana Herath helped Sri Lanka dismantle India's lower order with the left-arm spinner taking five wickets in the day's final session.
But Indian paceman Zaheer removed Tillakaratne Dilshan with a first-ball duck as Sri Lanka got off to the worse possible start in reply, before the visitors recovered to reach 66 for one by close of play with Tharanga Paranavitana and Kumar Sangakkara both finishing on 30 not out.
India had begun the day with Dravid resuming on 85 and he was soon lucky to get away with an inside-edge close to leg stump and away for a boundary.
From there, Dravid had little in the way of mishaps and went past Allan Border's career total of 11,174 Test runs to go four in the all-time scoring list, reaching his century with a straight drive off Chaaka Welegedara.
Dravid eventually lost his wicket when he suffered the misfortune of having backed up too far when Herath palmed Laxman's shot onto the stumps at the non-striker's end.
Sachin Tendulkar's wicket fell in the first hour when he failed to clear Thilan Samaraweera at deep mid-off leaving Laxman and Yuvraj to continue Dravid's work later on, the two building a fruitful stand.
Laxman reached his 41st Test half-century with a single off Muttiah Muralitharan and proceeded to add 102 for the fifth wicket with Yuvraj before later misjudging the distance between him and Dilshan, being picked out at mid-off.
From 613 for four India crumbled with Herath taking the wickets of Mahendra Singh Dhonki and Harbhajan Singth just before tea, eventually finishing with five for 121 from 33 overs.
Dilshan's brief spell at the crease ended when he went to flick the first ball from Zaheer, ballooning it into Pragyan Ojha's hands.
But Sangakkara and Paranavitana battled hard as they finished day to make sure no further damage was inflicted.
A rain interrupted second day in the first Test between New Zealand and Pakistan in Dunedin saw Daniel Vettori fall agonisingly short of his century when he was caught behind by Kamran Akmal off Umar Gul for 99.
Kiwi captain Vettori had shared a seventh-wicket stand of 164 with wicketkeeper Brendon McCullum -- who hit 78 before Gul took his middle wicket.
The Black Caps finished on 404-8 when they were offered the light just one ball after Vettori's dismissal.