Hardik Pandya scored his maiden Test century as India continued to dominate Sri Lanka after the second day of the third and final Test in Pallekelle.
The home team were struggling on 19/1 at stumps after being forced to follow-on as India bowled them out for just 135 in the first innings in reply to the visitors total of 487 all out.
Pandya, who is just playing in his third Test after making his debut in this series, provided the fireworks in the morning session though as he scored 108 off just 96 balls, which included eight fours and seven sixes.
Resuming the second day on 326/6, Pandya lost overnight batsman Wriddhiman Saha (16) early on but found a willing partner in Kuldeep Yadav (26).
The pair added 62 for the eighth wicket while Pandya and number ten Mohammad Shami (8) put on 20 for the penultimate wicket.
Last man Umesh Yadav, who has a first-class century to his name, only scored three in a partnership of 66 with Pandya, who was now in full flow.
The highlight was when he took 26 runs off a single over delivered by Malinda Pushpakumara, which was a new record for India in the longest format beating the 24 set by Sandeep Patil in 1982.
It was the fastest century by India number eight and the fifth fastest overall by an Indian in the longest format of the game as the visitors put on a formidable score.
Sri Lanka's left-arm wrist-spinner Lakshan Sandakan completed his maiden five-wicket haul in Test cricket, completing figures of 5-132 from 35.3 overs in just his sixth game in Test whites.
In reply the home team capitulated as India spinner Kuldeep, who replaced the suspended Ravindra Jadeja, took 4/40 while Pandya also chipped in the with the key wicket of Angelo Mathews for a duck.
Only home captain Dinesh Chandimal (48) showed any resistance with the bat before he was seventh batsman to fall.
The home team's miserable day was compounded when Upul Tharanga was bowled by seamer Umesh just before the close to leave Sri Lanka still trailing by 333 runs and facing a near miracle to avoid a series whitewash.