India warmed up for Wednesday's final of the tri-nations series with a comprehensive six-wicket victory over Bangladesh in Mirpur.

The hosts were thankful to captain Shakib Al Hasan and Mahmadullah for putting on 106 for the sixth wicket as Bangladesh made 247 for six in their innings.

But despite making a game of it the total proved woefully inadequate as Virat Kohli led his side to victory with an unbeaten century, India reaching their target with seven overs in hand.

The tourists had reduced Bangladesh to 95 for five, but Shakib hit an excellent 85 and Mahmudullah scored an undefeated 64 to get their side out of a hole.

Opening bowlers Sudeep Tyagi and Sreesanth got amongst the wickets early, Imrul Kayes slashing the former to Kohli at point before Sreesanth removed Mohammad Ashraful in the third over.

Tamim Iqbal and Raqibul Hasan steadied the ship but fell in quick succession after putting on 45, Ashish Nehra luring Tamim into a drive which the opening batsman miscued and hit to Tyagi at mid-off.

Yuvraj Singh was then brought on and he produced another dismissal in his first over, deliberately flicking a drive from Shakib Al Hasan onto the stumps at the non-striker's end and catching Raqibul short of the crease.

Yuvraj struck again to remove Mushfiqur Rahim and Bangladesh were left reeling at 95 for five when Shakib and Mahmudullah came together.

The former reached his 13th ODI half-century in 75 deliveries and added 35 more to his score from only 22 deliveries, but fell while attempting to force the pace immediately after the powerplay was taken.

Mahmudullah then went past the half-century mark and together with Naeem Islam (22 off 14) helped Bangladesh finish on a high.

But it soon became academic as Dinesh Karthik and Gautam Gambhir put on 64 in 12 overs for the opening stand, Shafiul Islam finally inducing a thin edge to remove the former for 34.

Gambhir followed four overs later when he was bowled by Naaem for 41 but Kohli was already in full swing at the other end.

He added 46 with Yuvraj for the third wicket - the usually dominant Yuvraj making only 13 before Naeem trapped him lbw - and then put on 68 with skipper Mahendra Singh Dhoni (32) to take the game completely away from Bangladesh.

Dhoni fell to the spin of Al Hasan but Suresh Raina saw that there would be no further alarms with a run-a-ball 18 not out see it through with Kohli, who hit the winning runs with successive fours that took him to his century from 95 deliveries.

India had already qualified for Wednesday's final, where they will meet Sri Lanka in Dhaka.