A win for Rohit Sharma's side was probably never really in doubt on Thursday once Bangladesh, having chosen to bat, slumped to 5-35 at the Dubai International Stadium.
But the Tigers, battling to make a respectable 228 all out on the back of Towhid Hridoy's splendid 100 and Jaker Ali's 68 in a defiant sixth-wicket stand of 154, then made the Indians work harder than they'd have liked for the win.
Shami had taken 5-53 and captain Sharma could hardly have been more embarrassed when he dropped Jaker Ali at slip, a simple missed chance that cost Axar Patel a first international hat-trick after he'd already dismissed Tanzid Hasan and Mushfiqur Rahim.
In reply, Gill led India's chase with an assured eighth one-day international century and was left unbeaten on 101 off 129 balls as India got the job done on 4-231 with 21 balls to spare.
Captain Sharma kicked things off with 41, going past the 11,000 ODI-runs landmark en route, in a brisk 69-run opening stand with Gill to get India well ahead of the required run rate, before Virat Kohli (22 off 38), Shreyas Iyer and Patel all came and went.
KL Rahul provided a steady run to the finish line alongside Gill with an unbeaten 41 after he had been dropped on nine.
Gill's century came off 125 balls, India's slowest in any one-day international in six years, but it was just the job to ensure a routine first win of the tournament.
"We have been in that kind of situation many a time," Sharma said, making the chase sound workaday.
"There's a lot of experience in that dressing room to handle that. KL and Gill at the end were quite composed.
"Gill, we know the class he ha. What he showed us, it shouldn't surprise anyone. What was good to see was he was there 'til the end."
India will next on Sunday face defending champions Pakistan, the tournament hosts who'll go to Dubai for the match because India refused to play on their neighbours' home turf on political and security grounds.