Put into bat, opener Shikhar Dhawan (60) and wicketkeeper-batsman Dinesh Karthik (94 retired hurt) put on a 100-run stand for the third wicket before all-rounder Hardik Pandya smashed a 54-ball unbeaten 80 to propel India to a mammoth 324/7.
In reply, Bangladesh failed to get going against the Indian new ball duo of Bhuvneshwar Kumar and Umesh Yadav, who shared six wickets between them, to skittle them out for a paltry 84 in just 23.5 overs.
Earlier, Karthik and Dhawan struck brilliant half centuries to steady the ship and help India recover from a precarious 21/2 before Karthik and Kedar Jadhav (31) added another 75 runs for the fourth wicket to take the side near the 200-run mark.
Karthik struck eight boundaries and a six in his 77-ball knock to push his case for a berth in the playing XI for the high-pressure opening match against Pakistan on Sunday.
Pandya too came good towards the later part of the innings, with a flashy half century, comprising six boundaries and four sixes that helped India cross the 300-run mark while Ravindra Jadeja (32) also played a handy knock.
Chasing the mammoth score, only three Bangladeshi batsmen -- Mushfiqur Rahim (13), Mehedi Hasan Miraz (24) and Sunzamul Islam (18 not out) -- managed to reach double figures.
The Bangladeshis lost the plot from the third over when Umesh dealt a double blow packing off opener Soumya Sarkar (7) and Sabbir Rahman (0) in the same over before Bhuvneshwar sent back Imrul Kayes (7), captain Shakib Al Hasan (7) and Mahmudullah (0) in no time.
Reeling at 21/5, Umesh dismissed Mosaddek Hossain for a duck before Mohammed Shami packed back Rahim to make it 47/7.
Miraj and Sunzamul added 30 runs for the eighth wicket but that was all they could manage as Jasprit Bumrah, Ravichandran Ashwin and Pandya wasted no time in cleaning up the tail and set up an impressive win for India.
Brief Scores: India 324/7 (Dinesh Karthik 94 retd hrt, Hardik Pandya 80 not out, Shikhar Dhawan 60, Rubel Hossain 3/50) beat Bangladesh 84 (Mehedi Hasan Miraz 24, Bhuvneshwar Kumar 3/13, Umesh Yadav 3/16) by 240 runs.
Kedar Jadhav's spell made the difference in the game, says Kohli
CT 2017: India defeat Bangladesh by 9 wickets for final clash against Pakistan
Rohit, Virat star as India pull off win over Bangladesh in CT17 Semi-Final
Bangladesh set India 265-run target to enter Champions Trophy final
CT2017, 2nd Semi-Final: Bangladesh Post 264/7 against India (Scorecard)
CT2017, 2nd Semi-Final - Bangladesh - 47/2 in 11 Overs
CT2017, 2nd Semi-Final: India opt to bowl against Bangladesh
CT2017, 2nd Semi-Final (Preview): India vs Bangladesh
Champions Trophy 2017: India aim to dominate Bangladesh in semis
India XI may be unchanged against Bangladesh in semis, hints Virat Kohli