India have bulldozed Sri Lanka by 168 runs in the fourth one-day international in Colombo after skipper Virat Kohli and opener Rohit Sharma smashed blistering hundreds to put the tourists 4-0 up in the five-match series.
The result was Sri Lanka's biggest ODI defeat on home soil in terms of runs and leaves them unable to claim the two victories they needed in the series to ensure automatic qualification for the 2019 World Cup.
Sri Lanka were also whitewashed 3-0 by India in the preceding Test series, prompting the entire selection panel to resign.
With the ODI series already in the bag, India amassed 5-375 after electing to bat and had looked on course for a 400-plus total while Kohli and Sharma were at the crease.
It didn't matter as Sri Lanka collapsed to 207 in 42.4 overs in reply, with only Angelo Mathews offering any real resistance with a fighting 70.
India lost opener Shikhar Dhawan cheaply but Kohli and Sharma dominated Sri Lanka's toothless attack during their 219-run stand for the second wicket.
Kohli was in sublime form and, having set the tone with a hat-trick of fours against Vishwa Fernando early on, needed only 76 balls to bring up his 29th ODI century.
Lasith Malinga ended the batting onslaught by dismissing Kohli for 131, the paceman's 300th ODI wicket. Kohli's 96-ball knock included 17 boundaries and two sixes.
India were still scoring briskly but Mathews dismissed Hardik Pandya and Sharma with successive balls to stop the bleeding.
Sharma's 104 - his second successive ton - came off 88 balls including three sixes and 11 fours.
Manish Pandey compiled 50 not out as he and MS Dhoni put on 101 in an unbroken sixth-wicket partnership, with former captain Dhoni undefeated on 49 in his 300th ODI.
With the home side's regular captain Upul Tharanga serving a suspension for the team's slow over rate and stand-in skipper Chamara Kapugedera nursing a back injury, Malinga led a Sri Lanka side that now faces a second successive series whitewash going into Sunday's final match.