(CNN) -- Centuries from Gautam Gambhir and Virat Kohli helped India defeat Sri Lanka by seven wickets in the fourth one-day international in Kolkata to take an unassailable 3-1 lead in the five-match series.
Upul Tharanga had hit a superb 118 and Kumar Sangakkara made a fine 60 as the visitors reached an imposing 315 for six after choosing to bat first.
However, Gambhir struck an undefeated 150 and Kohli made 107 -- his maiden century -- the two adding 224 for the third wicket as India easily overhauled the target, the highest one-day run chase at the famous Eden Gardens ground.
After the tourists opted to bat, India began well with the ball, conceding a measly nine from five immaculate overs sent down by new-ball bowlers Zaheer Khan and Ashish Nehra.
But Tillakaratne Dilshan broke the shackles by driving Nehra through the covers in the sixth over for the first boundary and from then on India gradually lost control.
Nehra, who had dropped Tharanga on seven when he failed to hold on to a fairly straightforward return catch, went some way to atoning for that error by snaring Dilshan early and Sanath Jayasuriya, batting at three, also departed cheaply.
But then Sangakkara, who was handed a reprieve before he was even off the mark when Harbhajan Singh squandered a simple chance at third man, and Tharanga built a solid base.
Tharanga, who increased the tempo by hitting Ishant Sharma for five boundaries in the paceman's first over, continued to bat steadily alongside his captain.
The pair scored easily off the spinners and struck timely boundaries as they added 126 for the third wicket, Tharanga reaching his seventh one-day century in the process.
The partnership was ended when the Sri Lanka captain was smartly stumped by Dinesh Karthik as he was too far out and across while attempting to help a Harbhajan delivery down to fine leg.
Tharanga followed Sangakkara back to the pavilion quickly after, but Sri Lanka's middle-order kicked on.
Perera chipped in with a 14-ball 31, while cameos from Mahela Jayawardene (33) and Thilina Kandamby (23 not out from 15) helped Sri Lanka to a strong total.
India's response to Sri Lanka's total began badly, the home side losing both openers with a mere 23 runs on the board.
Suranga Lakmal, who shared the new ball with debutant Thissara Perera, claimed stand-in-captain Virender Sehwag and Sachin Tendulkar in successive overs.
Those early blows brought Gambhir and Kohli together, the two steadying the ship with a calm and sensible approach.
Kohli injected momentum by hammering Lasith Malinga for four consecutive blows in the paceman's first over and in a period when boundaries were easily available.
The duo then easily negotiated the spinners, rotating the strike nicely and although the run rate dropped considerably, India were well in control.
Kohli was first to his century and Gambhir followed a delivery later, reaching his seventh one-day century in 101 deliveries.
Kohli then attempted to step up the pace and succeeded by hitting the first six of the innings -- in the 39th over -- but perished soon after while attempting another off Suraj Randiv.
Their 224-run stand was only 13 short of a record highest third-wicket partnership.
India still needed a further 69 from little more than 10 overs at that stage, but Gambhir narrowed the gap by hitting Perera and then Lakmal for successive boundaries.
Gambhir, with Karthik for company, got India across the line, finishing off the chase with boundary off the first ball of the penultimate over.