India's stand-in captain Rohit Sharma returned to form with a fine 89 to set up a 17-run victory over Bangladesh on Wednesday and reach the final of their Twenty20 tri-series.
Leading the side in the absence of rested regular skipper Virat Kohli, opening batsman Rohit hit five fours and an equal number of sixes in his 61-ball knock to guide India to 176-3 in their 20 overs.
Bangladesh, who also lost their first match of the tournament to India, managed 159-6 in reply. The winner of Friday's match between Sri Lanka and Bangladesh will meet India in the final on Sunday.
Off-spinner Washington Sundar ran through the Bangladesh top order with the new ball, taking three wickets in his first spell of three overs. The 18-year-old finished with 3-22, his best figures in the format.
Leg-spinner Yuzvendra Chahal was also economical in his four-over spell of 1-21.
Former captain Mushfiqur Rahim notched up his second consecutive fifty but his 72 not out in 55 balls was not enough.
Rohit's highest score in his previous six T20 matches, including the three-match series in South Africa, was 21 and he opted to be watchful at the start of his innings after India were asked to bat.
He added 70 with Shikhar Dhawan for the opening wicket before the latter was bowled by paceman Rubel Hossain for 35.
Rohit then had another fruitful partnership of 102 with Suresh Raina, who fell to Rubel in the final over of the innings after a 30-ball 47.
The 30-year-old Rohit, who has two hundreds in the shortest format of the game, was run out on the final ball of the innings.