An unbeaten century by Gautam Gambhir powered India to a seven-wicket victory over Bangladesh in the last league match of the tri-series, at the Sher-e-Bangla stadium in Dhaka on Thursday.
The victory set up a summit clash against arch-rivals Pakistan on Saturday.
Set 223 to win, India overhauled the modest target with 14.5 overs to spare.
Pakistan, who lost to India, made it to the final by virtue of their victory over Bangladesh.
Virender Sehwag, who hit a blazing 58, and Gambhir put up 85 runs in just 10 overs for the first wicket to lay the foundation for a convincing victory.
Earlier, Raqibul Hasan hit a brilliant 89 to steer Bangladesh to 222 all out in 49.5 overs, after they elected to bat on a good bating track.
It was Gambhir's second successive hundred against Bangladesh and fifth overall. It was studded with 13 boundaries and a six.
After Ferhad Reza and Mashrafe Mortaza failed to stop the merciless Delhi duo, skipper Mohammed Ashraful introduced young Dollar Mahmud into the attack in the 10th over. However, Ashraful had no idea of what was in store for Mahmud as the 'Najafgarh marauder' creamed him for 22 runs, hitting him for two extra-cover sixes and two leg-side boundaries.
Sehwag completed his 27th one-day fifty, consuming just 27 balls, though he succumbed to the last ball of the over while trying to hook Mahmud for another big shot.
Gambhir, who did not get much strike earlier, had reeled off three boundaries in a Reza over, before Sehweag unleashed a flurry of strokes.
Mumbai batsman Rohit Sharma joined Gambhir as skipper Dhoni opted to continue with the left-right combination.
The run-rate did suffer in absence of Sehwag as the Bangladesh slow bowlers -- Mahmudullah and Abdur Razzak put the breaks on the free- flowing runs for some time.
The overs between 10 to 20 fetched India just 48 runs and to break the shackles Sharma (26) went for an extravagant shot off Razzak, mistimed that, and saw the ball end up in the hands of Mortaza.
Gambhir paced his innings well and along with Yuvraj Singh (26) took India closer to the target.
Realising that Gambhir was nearing his hundred, Yuvraj preferred to give more strike to his partner and soon after Gambhir got his ton, Yuvraj perished going for the kill.
Mortaza clean bowled him after the Punjab left-hander had gathered 26 runs from 33 balls, helping himself to a four and a six.
Earlier, Hasan rescued Bangladesh with a gritty knock when they were staring at yet another disappointing show after their openers were knocked overs by the Indian pacers inside the first six overs.
Praveen Kumar, India's bowling hero in the last match, sent down some testing swing deliveries and was rewarded in the first over when Tamim Iqbal edged one into gloves of skipper M S Dhoni, behind the wickets.
Kumar was almost unplayable as he swung the ball both ways and troubled the other opener, Shariar Nafees, too.
R P Singh was also bang on target and cleaned up Nafees with a beautiful incoming delivery.
Nafees had hit the previous delivery, a full length ball, to a leg-side boundary but had no clue about the next and just saw his stumps shattered.
Hasan then joined hands with skipper Mohammed Ashraful to pull his team out of pits. The pair put together a 76-run stand for the third wicket and took the score to 93 for three. He struck just five boundaries in his 117-ball knock but braved the formidable Indian attack by stealing singles and doubles.
Yusuf Pathan broke the partnership when he caught Ashraful (36) off his own bowling.
Hasan carried on his good work and got good support from Alok Kapali, who played a 20-run cameo off 26 balls, which included two boundaries.
Their 46-run fifth-wicket stand took the score beyond the 150-run mark as the innings progressed towards the climax.
The hosts played well in the last 10 overs, scoring 60 runs to get past the 200-run mark, with Muhammadulla playing a smart, short innings of 24 runs off 27 balls, inclusive of two shots to the fence.
R P Singh, who came in for Ishant Sharma, was pick of the Indian bowlers, returning impressive figures of 3 for 46.