India rode on blistering centuries by Virat Kohli and Rohit Sharma to thrash Sri Lanka by 168 runs in the fourth one-day international Thursday for a 4-0 lead in the five-match series.
The batsmen shared 219 runs for the second wicket off just 168 balls to help India post an imposing 5-375 after the visitors elected to bat at the R. Premadasa stadium.
Sri Lanka barely put up a fight after losing four early wickets for 68 runs, folding up for 207 in 42.4 overs.
Angelo Mathews top-scored with 70 in what was Sri Lanka's biggest defeat in terms of runs in an ODI on home soil.
"We spoke about not being complacent at any stage," said Kohli, named man-of-the-match.
"It was a clinical performance today. We wanted to bat first because we hadn't batted first in the three games. The surface was amazing. It was a good toss to win."
Debutant Shardul Thakur gave India the first breakthrough when he had opener Niroshan Dickwella caught by Mahendra Singh Dhoni, playing his 300th one-day-international.
Sri Lanka could never really recover from the early blow and failed to build the partnerships which were needed to chase the imposing target.
The highlight of the game was the partnership between Kohli and Sharma.
Kohli hit 17 fours and two sixes in his enthralling 131-run knock that came off just 96 balls. Sharma (104) hammered 11 fours and three sixes in an equally entertaining 88-ball innings, his second century in a row.
Kohli reached his 29th ODI century off just 76 balls with a boundary off Milinda Siriwardana to the square-leg fence as he toyed with the bowling attack.
The skipper's 29th century moved him to third on the all-time list ahead of Sri Lankan great Sanath Jayasuriya. He's now sits behind just former Australia captain Ricky Ponting (30) and Indian legend Sachin Tendulkar (49).
For Sharma, it continued a dream run of form in 2017 that has seen him score three hundreds, three fifties and average 84 from nine ODI innings.
Mathews put the brakes on the scoring when he dismissed Hardik Pandya (19) and Sharma off consecutive balls.
Dhoni, who made 49 not out, became only the sixth Indian and the second wicketkeeper-batsman after Kumar Sangakkara to play 300 ODIs.
He also shared 101 runs with Manish Pandey (50 not out) after the visitors were reduced to 5-274.
Butter-fingered Sri Lanka dropped easy catches and misfielded often to allow some easy runs to the Indians.
Kohli was dismissed by Sri Lanka's stand-in captain Lasith Malinga who completed 300 Test wickets, the 13th bowler overall and fourth Sri Lankan to achieve the feat.
"300th wicket is just a number. I'm happy (for this record) but we lost which is very unfortunate," said Malinga.
"It's not been easy ... young players want to perform well, they're all excited but we haven't been able to come up with our best.
"They need the experience. Hopefully they will do their best over the next few months."
Sri Lanka have been struggling to put up a decent fight in the series, with injuries to key players, selection woes and hostile fans compounding their misery.
The islanders, ranked eighth to India's third, have copped criticism for going down to bottom-ranked Zimbabwe in an ODI series followed by a 3-0 Test whitewash against India on home soil.
Angry fans lobbed bottles and other objects after Sri Lanka lost the third game in Pallekele to India on Sunday.
The fifth and final one-dayer will be played in Colombo on Sunday.