Skipper Virat Kohli hit a blistering double century to hand India a massive first innings lead of 405 as the hosts tightened their grip on the second Test against Sri Lanka on day three on Sunday.
India declared on 610-6 after Rohit Sharma (102) had completed his hundred, as they seek to go one up in the three-match series.
The visitors were in early trouble on 21 for one at stumps in Nagpur, still trailing India by 384 runs.
Dimuth Karunaratne, on 11, and Lahiru Thirimanne, on 9, were at the crease after paceman Ishant Sharma bowled Sadeera Samarawickrama for 0 with the second ball of the innings.
The day belonged to Kohli, who hit a majestic 213 before falling to off-spinner Dilruwan Perera. He walked off to a standing ovation from a raucous crowd.
It was the star batsman's fifth 200-plus score in his 62nd Test. He has also achieved double centuries against the West Indies, New Zealand, England and Bangladesh.
Kohli and Rohit put on 173 for the fifth wicket to pulverise a deflated Sri Lanka attack that sent down 176.1 overs in about six sessions of play.
Kohli, who started the day on 54, smashed 17 fours and two sixes during his 267-ball knock.
He received able support from Sharma, who reached his 50 before tea and then stepped up a gear to amass runs all around the ground and register his third Test hundred.
Kohli's 183-run third-wicket stand with his overnight partner Cheteshwar Pujara had taken the steam out of the attack.
Pujara was bowled by paceman Dasun Shanaka for 143 in the first session, but Kohli kept scoring quickly in his team's bid to bat just once in the match.
Ajinkya Rahane, who was out to Perera for two, and opener Lokesh Rahul were the only two specialist batsmen to miss the Indian run fest of one double century and three centuries.
After the early departure of Rahul on day one, Murali Vijay (128) and Pujara had put India in the driving seat with their 209-run second-wicket partnership.
The first match of the series was hit by rain and ended in a draw in Kolkata.