Pallekele: Left-arm wrist-spinner Kuldeep Yadav picked up four wickets for 40 as India bundled out hosts Sri Lanka for 135 in their first innings for a lead of 352 on the second day of the third Test on Sunday.
The hosts were 19/1 at stumps in the second innings. They trail India by 333 runs.
India were earlier all out for 487 in their first innings in the first over after lunch after Sri Lanka left-arm spinner Lakshan Sandakan took a five-wicket haul for the first time in Tests.
All-rounder Hardik Pandya was out for 108 after scoring his first Test hundred and was the last batsman to be dismissed for India, who lead the three-match series 2-0.
Sandakan finished with 5/132, while left-arm spin colleague Malinda Pushpakumara took 3/82 for the hosts.
Pandya smashed his hundred off just 86 deliveries before he was the last batsman out for India.
The century was also a maiden first-class ton for the 23-year-old right-hander, who hit eight boundaries and seven sixes in his knock.
India resumed on 329/6 but suffered an early blow when they lost Saha for 16 in the second over of the day after the keeper guided seamer Vishwa Fernando's left-arm delivery straight into the hands of the gully fielder.
Kuldeep Yadav showed he was a more than capable lower-order batsman with a well-crafted 26, more importantly adding 62 in an eighth-wicket stand that dampened Sri Lanka's hopes of restricting the touring side to under 400.
Kuldeep fell to his wrist-spinning counterpart Sandakan, who also dismissed Shami for eight.
That brought Pandya, unbeaten on one overnight, and Umesh together for the last wicket, allowing the former a license to free his bat in search of quick runs.
The clean-hitting Pandya soon tore into the Sri Lanka attack and blasted 26 in one over from Malinda Pushpakumara, hitting the left-arm spinner for two fours and three sixes in five deliveries.
He reached three figures with a straight punch for four off paceman Lahiru Kumara.