Both sides made one change each from Thursday's first one-dayer which India won by five wickets to take the lead in the three-match series.
Leg-spinner Piyush Chawla, aged 18, was set to play his first one-day international for India in place of seamer Shanthakumaran Sreesanth.
Bangladesh were boosted by the return of pace spearhead Mashrafe Mortaza, who missed the previous match with a back strain. He replaced seamer Shahadat Hossain.
The match was reduced to 49-overs-a-side after play was delayed by 30 minutes due to light morning showers.
Sehwag fails to deliver: Sehwag failed once again and was out caught by Javed Omar at mid-off off the left-arm seamer Rasel after scoring 21 runs. The Indian opener yet again failed to convert the start into a big one. His innings was studded with a boundary and six in 26 balls.
Dhoni, who played a brave match winning innings in the previous game, joined Gambhir (16*).
India: Rahul Dravid (capt), Gautam Gambhir, Virender Sehwag, Yuvraj Singh, Dinesh Mongia, Mahendra Singh Dhoni, Dinesh Karthick, Piyush Chawla, Munaf Patel, Zaheer Khan, Ramesh Powar.
Bangladesh: Habibul Bashar (capt), Mohammad Ashraful, Javed Omar, Tamim Iqbal, Aftab Ahmed, Saqibul Hasan, Mushfiqur Rahim, Mashrafe Mortaza, Syed Rasel, Abdur Razzak, Mohammad Rafique.
Umpires: Asoka De Silva (SL) and Enamul Haque (Ban).
Match referee: Roshan Mahanama (SL)