Murali Vijay took a sharp catch at forward short leg to give Ravindra Jadeja an early wicket on Day 4.
Lahiru Thirimanne chased a full and wide delivery and sliced it straight to Ravindra Jadeja at backward point.
Ravindra Jadeja ended Angelo Mathews's stay early to put Sri Lanka in trouble.
Dinesh Chandimal copped a couple of blows to his body but batted on, which wickets fell at the other end.
In his second short spell of the morning, Ashwin struck to remove Dasun Shanaka, who was going after him and perished after playing one shot too many.
Ashwin finished the Lunch session with 299 scalps to his name.
Suranga Lakmal showed great resilience to deny India a win inside the first session.
Umesh broke the stubborn ninth-wicket stand by dismissing Chandimal early in the second session.
Ravichandran Ashwin cleaned up Lahiru Gamage to become the fastest to 300 Test wickets. With that wicket he also completed India's joint-biggest Test victory - by an innings and 239 runs.