|Gambhir and Kohli only took 33 overs to seal the deal in Dhaka [AFP]
Virat Kohli and Gautam Gambhir scored half-centuries in Dhaka to lead India to an eight-wicket win over Sri Lanka in a one-day international tri-series match.
Kohli was unbeaten on 71 and Gambhir was out for the same score as India reached 214-2 to eclipse Sri Lanka's 213 in less than 33 overs at Mirpur Sher-e-Bangla National Stadium.
Gambhir smashed 10 boundaries, while Kohli hit nine fours. Dinesh Karthik scored 48 and also hit nine boundaries.
India swing bowler Zaheer Khan and legspinner Amit Mishra each took three wickets as Sri Lanka were bowled out in 46.1 overs with captain Kumar Sangakkara top-scoring on 68.
Khan took 3-38 from 10 overs and Mishra 3-40 in 9.1 overs.
Sri Lanka and India will meet on Wednesday in the final of the tri-series that also includes Bangladesh, who take on India in their last game on Monday.
Sangakkara won the toss and elected to bat with both teams making three player changes.
Tillakaratne Dilshan returned from injury and Chanaka Welegedara and Suranga Lakmal were also included for Sri Lanka, replacing Malinga Bandara, Nuwan Kulasekara and Lahiru Thiramanne.
Mishra, Karthik and Sudeep Tyagi came in for India in place of Harbhajan Singh, Ashish Nehra and Virender Sehwag.
Sri Lanka's Suraj Randiv hit 56 for his maiden half-century, while Dilshan made 33 and Thilan Thushara 28.
Sri Lanka innings
U Tharanga c Karthik b Tyagi 0
T Dilshan c Gambhir b Zaheer 33
K Sangakkara c Raina b Yuvraj 68
M Jayawardene c Kohli b Zaheer 5
T Samaraweera lbw b Sreesanth 0
T Kandamby run out 1
T Perera c Yuvraj b Mishra 11
S Randiv b Mishra 56
T Thushara c Yuvraj b Zaheer 28
C Welegedara st Dhoni b Mishra 1
S Lakmal not out 0
Total (all out, 46.1 overs) 213
Fall of wickets: 1-0 2-42 3-60 4-61 5-66 6-84 7-143 8-202 9-209
D Karthik c Sangakkara b Thushara 48
G Gambhir c Welegedara b Perera 71
V Kohli not out 71
Y Singh not out 8
Total (two wickets, 32.4 overs) 214
Fall of wickets: 1-89 2-161
Sri Lanka slumped to 66-5.
Tyagi claimed Upul Tharanga for a duck after he was caught by Karthik in the fourth ball of the innings. Dilshan was the next to go, caught by Gambhir off Khan when Sri Lanka was 42.
Sri Lanka continued to struggle and quickly lost three more wickets.
Khan claimed Mahela Jayawardene for 5, caught by Virat Kohli, and Thilan
Samaraweera was trapped lbw for 0 by Shanthakumaran Sreesanth.
Thilina Kandamby was run out for 1 off a throw by Karthik. Thissara Perera was caught for 11 by Yuvraj Singh at deep midwicket off Mishra.
Sangakkara and Randiv stabilised the innings, adding 59 runs in a seventh-wicket stand before the skipper was caught by Suresh Raina off Yuvraj in the 30th over. Mishra also claimed Randiv.
Sangakkara hit nine boundaries in 78 balls, while Randiv hit four fours in 76 deliveries.
Khan then dismissed Thushara before Chanaka Welegedara was stumped for 1 by Mahendra Singh Dhoni off Mishra.