A well-compiled century from opener Gautam Gambhir and big-hitting by Suresh Raina helped India pull a thrilling five-wicket victory over Sri Lanka in the third One-day International in Colombo, on Saturday.
Chasing 287 for victory, India overhauled the target with two balls to spare and took a 2-1 lead in the five-match series.
Gambhir's 11th ODI century could have gone down the drain had Raina not played a heroic innings in company of Irfan Pathan.
The two-left handers added 92 runs in their unconquered sixth-wicket partnership and piloted India to its highest ever successful run chase on Sri Lankan soil.
After electing to bat, Sri Lanka put up an impressive 286 for five, with Kumar Sangakkara, Angelo Matthews and skipper Mahela Jayawardene scoring half-centuries.
For India, pacer Zaheer Khan (2/39) accounted for two wickets, while Irfan Pathan, Ashok Dinda and Rahul Sharma chipped in with a wicket apiece.
India's chase, though, was shaky, Virender Sehwag becoming the first victim when Thisara Perera had him caught in the covers.
Gambhir and Kohli then put on 105 runs for the second wicket to repair the innings, before spinner Rangana Herath separated them when he caught Kohli off his own bowling in the 21st over.
India skipper Mahendra Singh Dhoni promoted himself up the order and scored a useful 31, adding 67 runs with Gambhir for the third wicket.
India were comfortably placed at that stage, but the batting powerplay did not go their way as they lost Dhoni and Rohit Sharma to the first two balls of the 36th over.
Pacer Malinga first bowled Dhoni with a crushing yorker and then trapped Rohit in the next ball.
India's fate was in the hands of Raina and Pathan as the team needed 107 runs from 15 overs, and the duo did not disappoint.
Earlier, Kumar Sangakkara and Mahela Jayawardene scored impressive half-centuries to lead Sri Lanka to a challenging 286 for five.
The experienced combination of Jayawardene (65) and Sangakkara (73) mixed caution with aggression, adding 121 runs in 23.5 overs for a fourth-wicket, after the home team was in a spot of bother, tottering at 20 for three.
The duo provided the perfect launch pad for Angelo Matthews (71 not out) and Jeevan Mendis (45 not out) to accelerate in the end, adding 50 runs for the last five overs.
Matthews's 57-ball 71 consisted of five fours and a six, and Mendis's 40-ball 45 was laced with three fours and a six off Dinda over the mid-wicket boundary.
Electing to bat, Sri Lanka were off to a poor start -- reduced to three down with just 20 runs inside sixth over.
Zaheer gave the visitors the breakthrough as he sent back last match's half-centurion Tillakaratne Dilshan (4) in his second over of the innings. The opener had no idea where the ball went after he defended it off the front foot. All it did was to trickle down towards stumps.
Upul Tharanga (8) had a few nervous moments before he chased a wide delivery from Khan that was wide outside off-stump and got a thick outside edge which was lapped up by Mahendra Singh Dhoni.
Comeback man, Irfan Pathan did not allow Dinesh Chandimal to get off the mark as he was stuck on the crease to a ball that pitched on about middle and leg and then straightened, rapped him on the back leg and the umpire had no hesitation in raising the finger.
It was then left to the experienced duo of Sangakkara and Jayawardene to do repair work.
Both batted responsibly to steer their team out of the woods and ensure that they put up a good, fighting total on the board.
Jayawardene posted his 68th ODI fifty with a couple off R Ashwin, while Sangakkara got to his 73rd ODI half-century and 16th against India with a single down the ground.
While Jayawardene hit five fours in his 79-ball innings, Sangakkara faced 95 balls and found the fence six times.
Jayawardene, who had started to open up with some lovely sweeps and a reverse sweep was sent back by leg-spinner Rahul Sharma.
Jayawardene went on the back foot attempting to work the ball away but it hurried on and hit him in front of leg stump.
The Sri Lankan did not look too pleased with umpire Kumar Dharmasena's decision.
Dinda then took out Sangakkara in the 38th over when the Sri Lankan failed to connect a fuller ball just outside the off-stump and gifted a simple catch to Virat Kohli at point.
Sri Lanka managed just 24 runs from the Batting Powerplay with just two boundaries and the loss of Sangakkara. That's the period when India looked to have pulled some loose strings but Matthews and Mendis pummeled the Indian bowling with some lusty hitting.
Photograph: Dinuka Liyanawatte/Reuters