Ravindra Jadeja claimed five wickets as India beat Sri Lanka by an innings and 53 runs on day four of the second Test to clinch the series in Colombo on Sunday.
Jadeja claimed the big wicket of overnight batsman Dimuth Karunaratne for 141 to end Sri Lanka's resistance as they followed on and were dismissed for 386.
But the Indian bowlers had to toil for 116.5 overs before wrapping up the game in the second session and taking an unassailable 2-0 lead in the three-match series.
The only sting in the tail for Jadeja was a one-match ban, ruling him out of the series finale, for dangerous play when he threw the ball back at batsman Karunaratne, who had not left his crease. He was also docked half his match fee.
Sri Lanka earlier handed India the advantage after being dismissed for 183 in response to the visitors' mammoth first innings total of 622-9 declared.
But the hosts fought back through a defiant 191-run second-wicket partnership between the left-handed Karunaratne and Kusal Mendis, who fell for 110 before stumps on day three.
Indian skipper Virat Kohli kept rotating his bowlers at the Sinhalese Sports Club Ground to keep the batsmen on their toes, and the strategy paid off.
The hosts, who resumed the day on 209-2, lost two wickets in the morning session, including skipper Dinesh Chandimal for two. The batsman was caught at slip off Jadeja's left-arm spin.
Karunaratne kept up the fight during his 69-run fifth-wicket stand with former captain Angelo Mathews, who made a gritty 36 before being caught behind off Jadeja.
Ravichandran Ashwin - who took five wickets in the first innings - and pacemen Hardik Pandya shared two wickets each.
The Indian batsmen had set up the victory with six of them scoring 50 or more -- including centuries from Cheteshwar Pujara and Ajinkya Rahane.
Pujara, who top-scored with 133, and Rahane, who made 132, put together a 217-run stand after the tourists elected to bat first.
The final Test is scheduled to begin on August 12 in Pallekele.