Opener Rohit Sharma's sublime century combined with a maiden five-wicket haul by paceman Jasprit Bumrah powered India to a series-clinching win against Sri Lanka in the third one-day international on Sunday.
Chasing 218 for victory, Sharma hit 124 not out in 145 balls to steer the visitors home in 45.1 overs, although unruly crowd behaviour delayed their six-wicket win in Pallekele.
Angry home fans threw water bottles onto the field and play stopped as players walked off with India needing eight runs to win.
The visitors rode on an unbeaten 157-run fifth-wicket stand between Sharma and Mahendra Singh Dhoni, who made 67, to take a 3-0 lead in the five-match series.
But it was player of the match Bumrah who set up the win for India after his career-best figures of 5-27 restricted Sri Lanka to 217-9 in 50 overs.
"Bumrah's got 11 wickets in three games, he's bowled really well, he's among our top short-format bowlers at the moment," Kohli said in praise of the 23-year-old.
"He hits the right areas, bowls at pace, and in the death overs he's like a fish in water," Kohli added.
Sri Lankan fast bowlers hurt India's reply with two early strikes including skipper Virat Kohli for three, leaving the visitors at 2-19.
Sharma and KL Rahul, who made 17, then tried to steady the chase with their 42-run partnership before spinner Akila Dananjaya turned on the heat.
Dananjaya got Rahul and Kedar Jadhav for nought in his first two overs.
But Sharma, who made 54 in the team's previous win, kept his cool amid the madness to register his 12th ODI hundred as he paired with Dhoni to thwart the Sri Lankan bowling attack.
"Small targets are always tricky. If it happens two, three times, it isn't an issue...Here it was just the case of the wicket being a bit more challenging," said Kohli.
"Rohit was outstanding, MS was great as well. These things happen, the guys will learn in the middle order...we have to be patient with them," he added.
Earlier, Sri Lanka's Lahiru Thirimanne scored a 105-ball 80 to give the total some respectability after the Chamara Kapugedera-led side lost regular wickets.
Thirimanne put on a gritty 72-run stand with Test captain Dinesh Chandimal, who made a sedate 36, but the rest of the batting let the hosts down.
"Things didn't go to our plans. We discussed about not playing dot balls in the middle overs, but things didn't work out...260-275 would have been a challenging score," said Kapugedera.
"I enjoyed captaincy – it was pressure, but I enjoyed it, and hopefully we can win next time," Kapugedera, who was standing in for suspended captain Upul Tharanga, added.
Sri Lanka's worries were compounded with Chandimal suffering a hairline fracture to his thumb while negotiating a bouncer from fast bowler Hardik Pandya.
Bumrah, who shared the new ball with Bhuvneshwar Kumar, got two early wickets in Niroshan Dickwella and Kusal Mendis after the hosts elected to bat first.
The fourth ODI is slated for Thursday in Colombo.
Sri Lanka: Chamara Kapugedera (c), Angelo Mathews, Niroshan Dickwella, Dinesh Chandimal, Kusal Mendis, Lahiru Thirimanne, Akila Dananjaya, Dushmantha Chameera, Milinda Siriwardana, Lasith Malinga, Vishwa Fernando.
India: Virat Kohli (c), Shikhar Dhawan, Rohit Sharma, Lokesh Rahul, Kedar Jadhav, Mahendra Singh Dhoni, Hardik Pandya, Axar Patel, Yuzvendra Chahal, Jasprit Bumrah, Bhuvneshwar Kumar.