Chasing a target of 273 in 50 overs, India were cruising along at 100 for one in 16.4 overs when the heavens opened up leading to a nearly two-hour delay. This lead to a revised target of 150 in 26 overs courtesy of D/L method, which India achieved with seven balls to spare.
The foundation was laid by Rahane, who scored 64 off 70 balls and shared a 99-run opening stand with Uthappa, who smashed a quickfire 50 off 44 balls.
The delay affected the momentum and there were umpiring howlers from Bangladesh umpire Enamul Haque Moni. Ambati Rayudu (16) and Suresh Raina (15) were at the crease when the winning run was achieved.
The decision that Uthappa got was a poor one as Shakib's armer hit the bat first before hitting the pad.
Nevertheless it was an impressive comeback for Uthappa in India colours after a break of six years. He seemed to carry his IPL form into international cricket, hitting three fours and as many sixes.
The best shot was the one when he reached to the pitch of a flighted delivery from Shakib al Hasan to loft him effortlessly over extra cover. The other two were hit off left-arm spinner Abdur Razzak and medium pacer Ziaur Rahaman.
While facing pacers Mashrafe Mortaza and Al-Amin, Uthappa showed full face of the bat.
Rahane was also a delight to watch as he stepped out to lift Mortaza over extra cover and then pulled him towards mid-wicket for a boundary.
He also used the sweep shot against Razzak. Cheteshwar Pujara (0) would consider himself unlucky as he got another howler from Moni, who adjudged him leg before off Shakib with ball hitting him on the thigh pads and clearly going above the stumps.
Rahane finally completed his sixth ODI half centiry off 60 balls while Ambati Rayudu seemingly struggled against the slow bowlers before they reached home.
Earlier, an inexperienced Indian attack led by fast bowler Umesh Yadav performed admirably on a flat track restricting hosts Bangladesh to 272 for nine in 50 overs.
Yadav grabbed three for 48 in nine overs as skipper Mushfiqur Rahim (59) and star all-rounder Shakib al Hasan (52) struck half-centuries after the former opted to make first use of the conditions.
Debutant Parveez Rasool (2/60) grabbed couple of important top-order wickets while Amit Mishra (2/55) struck twice in the rear.
With a combined ODI experience of 56 matches, Yadav (28), Amit Mishra (23) and Mohit Sharma (5), the five pronged bowling attack with two debutants in Rasool and Akshar Patel did well collectively considering the dead nature of the strip where 300 plus score was there for the taking.
Bangladesh were scratchy in the beginning with senior opener Tamim Iqbal (0) looking completely out of sorts. Umesh ended his misery with last ball of the fourth over which the left-hander edged to Wriddhiman Saha behind the stumps.
The ball had moved a shade and he nicked it having failed to open his account of the previous 10 deliveries.
Anamul Haque Bijoy (44) got his first couple of boundaries in the fifth over bowled by Mohit Sharma when he got one with a thick slash through third man followed by a cover drive.
Mominul Haque (6) also did inspire much confidence before he tried to drive away from his body to a Yadav delivery which was gleefully pouched by Wriddhiman.
Anamul was joined by his captain Mushfiqur Rahim (59) as the duo started the repair work on a cautious note.
The duo added 52 runs during their third wicket stand with Anamul getting a few boundaries.
Among the two debutant spinners, Akshar Patel's (1/59) in 10 overs) first outing was certainly disappointing as he looked very flat with his execution.
The pitch was a bit slow but the young Gujarat lad showed very little variation in his deliveries. He mostly bowled flat and there was certainly not much turn on offer for him.
Rasool, who created history by becoming first cricketer from Jammu and Kashmir to play for India, was more positive in his approach although he did get a bit of stick from Shakib al Hasan and Rahim.
He was not afraid to flight the ball and also at times surprised the batsman with quick change of pace of his deliveries.
He first induced Anamul to come out and try to hoick it over deep mid-wicket but couldn't get the required elevation as he was taken by Ambati Rayudu low down. Anamul hit seven fours in 60 balls.
Rahim, who was batting well in Shakib's company, hit three fours and three sixes with his 15th ODI half-century coming off 56 balls. However he was also deceived in the air by Rasool as Ajinkya Rahane took a simple catch at mid-off.
Shakib and seasoned Mahmudullah Riyadh (41) then added 65 runs in the next 11 overs as they hit the occasional boundaries and also took the singles.
Shakib's 26th ODI half-century came off 52 balls which had a big six over deep mid-wicket off Rasool as well as straight four over the bowler's head.
He also got two more boundaries off Raina and Mohit Sharma before he offered a simple return catch to the Indian captain. Shakib's 52 came off 58 balls.
However his dismissal led to a mini-collapse as Mahmudullah was cleaned up by Mishra and suddenly a couple of more wickets saw Bangladesh tottering at 235 for eight. But Mashrafe Mortaza (18) and Abdul Razzaq (16) ensured that the home team reach a decent total.