Indian captain Virat Kohli blasted an unbeaten 156 to pass 5,000 runs in Test cricket as his side made 371-4 on a painful opening day of the third Test for Sri Lanka's bowlers.
Opener Murali Vijay also plundered 155 to increase the agony for the tourists who are one down in the series.
Kohli remained on 156 with Rohit Sharma on six at the end of the day at the Feroz Shah Kotla stadium in New Delhi.
Kohli and Vijay put on 283 for the third wicket after India lost its top two batsmen in the morning session.
Left-arm wrist spinner Lakshan Sandakan hurt the hosts with two late wickets, including Vijay's prized scalp.
Vijay was stumped for 155 though the decision needed approval from the third umpire with the batsman's back foot just on the line.
Ajinkya Rahane's miserable run with the bat continued as he was stumped in a similar fashion to walk off with one run to his name from five deliveries.
Kohli, fresh from a majestic 213 during India's thrashing of Sri Lanka in the second Test in Nagpur, led the batting charge with his 20th Test century.
The Delhi-born star got a single off Dilruwan Perera after the tea break to register his first Test century on his home ground and the crowd stood up in applause.
Kohli's knock, laced with 16 boundaries, took him past 5,000 Test runs in his 63rd game.
He also became the first captain to score successive hundreds in a three-match series.
Vijay seemed inspired by his captain as the right-hand opener smashed his second straight ton of the series following an innings of 128 when he came back from injury in Nagpur.
Earlier Perera got his 100th Test scalp to send opener Shikhar Dhawan back for 23. Perera became Sri Lanka's fastest bowler to a century of wickets in his 25th match, two less than spin legend Muttiah Muralitharan.
Cheteshwar Pujara was the second man out, caught at leg slip for 23 after flicking a sliding delivery from paceman Lahiru Gamage.
India lead the series 1-0 and need only a draw for a record-equalling ninth successive Test series triumph. England and Australia are the other sides to have achieved the feat.