Centuries from Cheteshwar Pujara and Ajinkya Rahane, together with a fifty from the fit-again KL Rahul, helped India to reach a commanding position of 344-3 at stumps on the opening day of the second Test against Sri Lanka in Colombo.
After winning the first match in Galle by 304 runs, the tourists are aiming to seal the series with victory at Sinhalese Sports Club Ground, where they made a strong start on Thursday.
Having notched a second century in successive matches, Pujara reached close of play 128 not out, alongside Rahane (103 no).
And their efforts leave India well positioned to tighten their stranglehold on the contest when the pair resume on day two.
India captain Virat Kohli won the toss and elected to bat, Sri Lanka making a relatively early breakthrough when Dilruwan Perera (1-68) won a review to have Shikhar Dhawan - a centurion in the first Test - out lbw for 35 in the 11th over, the opener having missed an attempted sweep shot.
Rahul sat out the previous meeting due a viral fever that required hospitalisation, but he rose from his sickbed to replace Abhinav Mukund and record a sixth successive Test half-century, matching an Indian record also held by GR Viswanath and Rahul Dravid.
A mix-up with Pujara while attempting to run for a single saw Rahul depart for 57 and Kohli (13) followed eight overs later.
The skipper fell victim to a superb catch from Angelo Mathews at first slip after edging Rangana Herath (1-83) while attempting to go after a delivery back of a length and outside off stump.
Fortunately for India, Rahane proved far tougher to dislodge, putting on 211 alongside Pujara, who marked the occasion of a 50th Test appearance with his 4000th run in the longest format and a 13th century at this level.
There was an element of good fortune to his milestone showing, having narrowly avoided edging to slip on one and also giving up a half chance to short leg at the end of the morning session.
Rahane, meanwhile, settled quickly, coming down the ground frequently and directing short balls through midwicket, as Sri Lanka's spin attack failed to elicit the turn they had expected on what should have been a friendly wicket.
Their cause was not helped by debutant Malinda Pushpakumara (0-82), who dropped a return catch chance from Rahane with the batsman on 77, having earlier been smashed for six over midwicket by Pujara.
Rahane also survived a review off the bowling of Herath thanks to a thick inside edge, duly bringing up his ninth ton to leave Sri Lanka facing a battle to save the match and the series.