Murali Vijay and Cheteshwar Pujara both hit hundreds and combined in a stand of 209 to hand India a big first innings lead over Sri Lanka on the second day of the second test in Nagpur on Saturday.
The hosts reached the close of play on 312 for two with Pujara unbeaten on 121 after his 14th test hundred and had captain Virat Kohli not out on 54 at the other end.
The world's top-ranked test side were ahead by 107 in the first innings after Sri Lanka were bundled out for 205 on the opening day.
Vijay, who missed India's three-test series in Sri Lanka with injury and was left out of the drawn first match in Kolkata, celebrated his return to the side with 128 runs.
He top-edged a full toss from left-arm spinner Rangana Herath to be caught at short fine leg and was the lone success for the Sri Lankan attack after two sessions of fruitless toil.
Kohli followed up his unbeaten ton in the last test with his 15th fifty and further deflated the touring side's morale with his attacking knock, hitting six boundaries, and an unbroken third-wicket partnership of 96 with Pujara.
Resuming the Indian innings on 11-1, both Vijay and Pujara were watchful during the first hour's play and waited for the bad balls for scoring opportunities.
Playing at the same ground where he made his debut nine years back, the 33-year-old Vijay square-drove the first ball of the morning for a four.
He completed his 10th test hundred with a single against off-spinner Dilruwan Perera, his innings studded with 11 fours and a six.
Sri Lanka had a chance to dismiss him for 19 when the short-leg fielder first floored a sharp chance off Herath and then failed to run out the opener who was well out of his crease. Perera also dropped Vijay on 61 at short mid-on off paceman Lahiru Gamage.
Pujara was typically poised at the other end, mostly leaving the deliveries outside his off-stump and offering a dead bat in defence.
Perera got the right-hander to edge one on 25 but the ball fell well short of Angelo Mathews at slip. Pujara's innings was otherwise spotless and he has hit 13 fours in his 284-ball knock so far.
Sri Lanka had managed to keep a lid on India's scoring rate in the first hour of play but it was after the introduction of Perera that India got momentum with both the batsmen attacking the off-spinner who went for 117 runs in 21 overs.