However, sharp fielding and catching by captain MS Dhoni, Shikhar Dhawan and Ravi Jadeja directly accounted for three of the first four wickets and from that point the task was well beyond Bangladesh's scope.
When senior player Shakib al Hasan and gutsy wicketkeeper Mushfiqur Rahim departed in quick order that signalled the end of Bangladesh's hopes.
Man of the match Rohit Sharma struck the first ball of the match to the point boundary and went on to play a magnificent innings, his 137 off 126 balls anchoring India's charge past 300.
But for one fascinating period, Bangladesh had a real grip on India's batsmen.
Cleverly using their two best bowlers, speedster Rubel Hossain and left arm spinner Shakib al Hasan, in tandem, they dismissed Dhawan and Virat Kohli in the space of nine balls then turned the screws on Sharma and Ajinkya Rahane, and for a time Suresh Raina.
For 65 balls India couldn't manage a single boundary. They were 99 for two after 25 overs and 126 for three at 30. However, the usual rule about doubling the total at 30 overs didn't apply last night.
Inept captaincy by Mashrafe Mortaza with overly defensive field placings when he had the chance to go for broke, plus his own ordinary bowling - barely getting above 120km/h - let India off the hook.
The key stand was between Sharma and Raina, 122 off 98 balls for the fourth wicket, which carried India out of danger. Punchy lefthander Raina set the tone, Sharma followed and they shut the door on Bangladesh, whose fielding became dispirited and sloppy late on.
The Bangladeshis suffering from an awful mistake by umpires Aleem Dar and Ian Gould didn't help.
Sharma, on 90, pulled a full toss by the impressive Rubel to deep mid wicket where it was caught. However, Gould, partly on Dar's advice, ruled it reached the batsman above waist height and was therefore a no ball.
It did not and they did not bother to check upstairs. That cost Bangladesh at least 45 runs as India rattled up 97 in the last 10 overs - it meant the difference between chasing 260 and 300.
Sharma, with often exquisite timing and placement, produced a stream of scintillating drives and pulls, particularly after he'd reached his century.
Bangladesh head home but a far wiser and more proficient ODI side than four years ago.
They have plenty of reasons to be positive.
Big hitters
Rohit Sharma is the fourth Indian batsman to hit a century in this World Cup. Opening partner Shikhar Dhawan has made two, Suresh Raina and Virat Kohli one each.
Once India reached 300 last night it was a death knell for Bangladesh. No team has ever chased more than 300 and won an ODI at the Melbourne Cricket Ground.
India, one of only two unbeaten teams at the cup, along with New Zealand, will play the winner of tonight's third quarter-final, between Australia and Pakistan in Adelaide, in the second semifinal at Sydney on Thursday.
Commentary
Scoreboard
Manhattan/Worm
Wagonwheel
Win probability