Galle: Herath picked up openers early after twin hundreds from Karunaratne (186) and Chandimal (151). WI were 66 for 2 stump on second day reply to Sri Lanka' 484 in Galle on Thursday.
Earlier, West Indies hit back after big partnership with Sri Lanka were all out for 484 at the end of their first innings as a lower order collapse saw them lose their last five wickets for just 36 runs.
The hosts had reached a formidable 448-5 at tea after a record-breaking stand from Dimuth Karunaratne and Dinesh Chandimal.
But after skipper Angelo Mathews was caught and bowled by his opposite number Jason Holder soon after the break, the Sri Lankan lower order was quickly skittled out as the spinner Devendra Bishoo took three wickets.
Bishoo finished with figures of 4 for 143 in 40.3 overs while Jerome Taylor was the pick of the fast bowlers, taking 2 for 65.
Karunaratne had earlier made 186 while Chandimal notched up 151 as they both made the West Indies' bowlers toil on an unresponsive pitch under hot and humid conditions.
Their 238-run partnership for the third wicket set a new record in Tests between Sri Lanka and West Indies.
Brief scores
Sri Lanka - 484 (Karunaratne 186, Chandimal 151, Bishoo 4-143)
West Indies - 66 for 2 (Herath 2-14)
Status - West Indies trail by 418 runs