Galle - Virat Kohli and Abhinav Mukund fired quick runs off dispirited Sri Lankan bowlers on Friday to power India to a hefty second-innings lead of nearly 500 in the first Test.
Skipper Kohli hit an unbeaten 76 and Mukund was out for 81 on what turned out to be the final ball of the third day's play in Galle.
It was a crushing day for the home side. After smashing 600 in the first innings and then bowling out Sri Lanka for 291 earlier in the day, India reached 189/3 and a lead of 498.
Kohli will head out again on Saturday looking to make a century before trying to finish the job inside four days.
Even an 84-minute rain break could not dampen India's determination and Sri Lanka's stand-in captain Rangana Herath went off for the final hour after hurting a finger trying to stop a Kohli drive.
Kohli and Mukund made 133 for the third wicket. No Sri Lankan bowler made much of an impact until Danushka Gunathilaka claimed Mukund lbw.
Mukund at first stood his ground, but the TV umpire gave part-time spinner Gunathilaka the wicket.
India lost their first-innings batting heroes Shikhar Dhawan and Cheteshwar Pujara cheaply.
Kohli and Mukund then hit out, scoring at virtually 4.5 runs an over, with 13 boundaries between them.
Sri Lanka came back from an overnight score of 154/5. Former skipper Angelo Mathews went from 54 to 83 before flashing at a Ravindra Jadeja ball and sending it straight to Kohli at short cover.
Veteran Dilruwan Perera hit a top score of 92 - with 10 fours and four sixes - but ran out of partners before he could get a deserved century.
Sri Lanka had only 10 batsmen because Asela Gunaratne broke his thumb on Thursday.
Jadeja picked up three wickets. Kohli decided against enforcing the follow-on but is still on course to make Sri Lanka suffer.