Shikhar Dhawan and Cheteshwar Pujara struck contrasting centuries as India took the honours on day one of the first Test against Sri Lanka in Galle, the visitors reaching stumps on a commanding 399/3.
Opening batsman Dhawan, who was only playing because regular openers Lokesh Rahul and Murali Vijay were missing due to various ailments, hit a career-best 190 off just 168 balls while Pujara was more measured and at the close was sitting on an unbeaten 144 from 212 deliveries.
Dhawan lost his opening partner Abhinav Mukund (12) in the eighth over when seamer Nuwan Pradeep got him caught by wicketkeeper Niroshan Dickwella.
Pujara was then joined Dhawan at the crease and the duo made hay while the sun was shining over the fort in Galle putting on a mammoth 253-run stand for the second wicket that came at a rapid rate.
Dhawan raced to his hundred off just 110 balls and continued to cut loose on the home side's bowlers while Pujara went about his business quietly at the other end, bringing up his century in 173 deliveries.
The pair were eventually separated when Pradeep got rid of Dhawan just before the tea interval for 190, better that the left-hander's previous best score of 187 against Australia on Test debut in 2013.
India captain Virat Kohli (3), who had won the toss and elected to bat first in the morning, fell cheaply also to Pradeep who was by far the best bowler on the day.
Ajinkya Rahane (39 not out) then stood with Pujara until the close of play and the duo will resume on day two hoping to increase their partnership of 114.
Pradeep finished the day with respectable figures of 3/64 from 18 overs but the bad news for the hosts is that all-rounder Asela Gunaratne broke his thumb in the field and will play no further part in the match.