Rishabh Pant smashed 96 to help India to 357 for six on the opening day of the first Test against Sri Lanka after Virat Kohli fell agonisingly short of fifty in his 100th five-day match Friday.
Pant, a wicketkeeper-batsman, put on a key stand of 104 with fellow left-hander Ravindra Jadeja, who stood unbeaten on 45, after the hosts slipped to 228 for five on day one in Mohali.
Sri Lankan bowlers led by spinner Lasith Embuldeniya attempted to check India with wickets at the start of the two-match series, but Pant took the attack to the opposition in the final session of play.
Pant missed out on his century after being bowled by fast bowler Suranga Lakmal following Sri Lanka's decision to take the second new ball in the 81st over.
Sri Lanka fought back with wickets in the second session after they sent back Kohli and Hanuma Vihari, who made 58, in quick succession.
Kohli surpassed 8,000 Test runs, but left-arm spinner Embuldeniya bowled the former captain who stood in disbelief and then walked back to applause from the limited spectators allowed for the match.
Kohli, who last scored an international century in November 2019, scored 45 -- with every run cheered -- and put on 90 runs for the third wicket with Vihari.
Vihari scored his fifth Test half-century but departed soon after Kohli, dragging on an incoming delivery from left-arm quick Vishwa Fernando.
Pant, often criticised for throwing away his wicket in Tests, then put on 53 with Shreyas Iyer, who made 27 before being trapped lbw off Dhananjaya de Silva's off-spin.
The 24-year-old Pant stood firm with Jadeja for company to reach his eighth Test half-century, then hammered Embuldeniya for two sixes and two fours in a 22-run over.
He kept up the assault until a good-length delivery from Lakmal got through his defences and the disappointed batsman sat on his haunches before trudging back.
Earlier, Rohit Sharma, who last month replaced Kohli as captain across all formats, hit Lahiru Kumara for two successive boundaries including a well-executed pull but soon got caught at long leg in another attempt to smash the short ball.
Embuldeniya, one of the two slower bowlers for Sri Lanka -- hoping for the first-ever Test victory in India in their 300th five-day game -- trapped Mayank Agarwal lbw for 33.
India v Sri Lanka first Test scoreboard
India 1st innings
M. Agarwal lbw b Embuldeniya 33
R. Sharma c Lakmal b Kumara 29
H. Vihari b Fernando 58
V. Kohli b Embuldeniya 45
R. Pant b Lakmal 96
S. Iyer lbw b de Silva 27
R. Jadeja not out 45
R. Ashwin not out 10
Extras (lb5, nb9) 14
Total (6 wickets, 85 overs) 357
Yet to bat: J. Yadav, M. Shami, J. Bumrah
Fall of wickets: 1-52 (Rohit), 2-80 (Agarwal), 3-170 (Kohli), 4-175 (Vihari), 5-228 (Iyer), 6-332 (Pant)
Bowling: Lakmal 16-1-63-1 (nb3), Fernando 16-1-69-1 (nb2), Kumara 10.5-1-52-1, Embuldeniya 28-2-107-2 (nb4), de Silva 11-1-47-1, Asalanka 3.1-0-14-0
Sri Lanka: D. Karunaratne (capt), L. Thirimanne, P. Nissanka, C. Asalanka, A. Mathews, D. de Silva, N. Dickwella, S. Lakmal, V. Fernando, L. Embuldeniya, L. Kumara