Ravichandran Ashwin grabbed four wickets on Monday as India crushed Sri Lanka by an innings and 171 runs inside three days to complete their first three-Test series sweep on foreign soil.

Ashwin and paceman Mohammed Shami shared seven wickets as Sri Lanka were bowled out for 181 during their follow-on in an extended second session in Pallekele.

Sri Lanka had crumbled for 135 in response to India’s 487 in the first innings, putting the world’s top Test team in firm control as early as day two.

All-rounder Hardik Pandya set up the win with his blistering, 96-ball 108, cracking his maiden Test century in just his third game.

Left-arm wrist spinner Kuldeep Yadav turned up the heat with four wickets in Sri Lanka’s first innings as the islanders conceded a 352-run first innings lead.

And Ashwin kept up the pressure on the beleaguered hosts, striking the first blow of the morning session by sending back opener Dimuth Karunaratne for 16.

Skipper Dinesh Chandimal, who made 36, provided some resistance during his 65-run fifth-wicket stand with Angelo Mathews.

Kuldeep, playing just his second Test, broke the partnership with Chandimal’s wicket just after lunch, and Ashwin soon got Mathews for 35 as Sri Lanka slipped further.

Shami combined with Ashwin to mop up the tail as beleaguered Sri Lanka suffered their second successive innings loss after the Colombo Test.

Brief scores:

India 487 all out (Shikhar Dhawan 119, Hardik Pandya 108; Lakshan Sandakan 5/132, Malinda Pushpakumara 3/82) beat Sri Lanka 135 all out (Dinesh Chandimal 48, Niroshan Dickwella 29; Kuldeep Yadav 4/40, Mohammed Shami 2/17) and 181 all out, following on (Niroshan Dickwella 41, Dinesh Chandimal 36; Ravichandran Ashwin 4/68, Mohammed Shami 3/32) by an innings and 171 runs.