Kanpur: Yashasvi Jaiswal smashed 51 on Tuesday as India pulled off a remarkable seven-wicket victory over Bangladesh in a rain-hit second Test in Kanpur that lost two-and-a-half days to bad weather.
The hosts bundled out Bangladesh for 146 before lunch on the fifth and final day and, needing 95 for victory, reached 98-3 in just 104 balls in the second session.
Jaiswal reached his second fifty of the match in 43 balls including eight fours and one six before falling to Taijul Islam, ending a 58-run stand with Virat Kohli.
Kohli hit an unbeaten 29 and was there at the end as Rishabh Pant hit the winning boundary.
Bangladesh spinner Mehidy Hasan Miraz had earlier removed India captain Rohit Sharma, for eight, and Shubman Gill, for six.
The series victory extends India's lead at the top of the World Test Championship rankings ahead of Australia in second.
India rode on Jaiswal's 72-run blitz in the first innings to force a result out of a match which saw no play on Saturday and Sunday because of rain and a wet outfield.
Bangladesh resumed their second innings on 26-2 on the final day, 26 runs behind, but the batting fell apart during the first session, with opener Shadman Islam top scoring on 50.
Ravichandran Ashwin, Ravindra Jadeja and Jasprit Bumrah took three wickets each.
Mushfiqur Rahim frustrated India as the lunch break was delayed for the final wicket. He was last man out when Bumrah bowled him for 37.
Off-spinner Ashwin broke through in the third over of the day when he had first-innings centurion Mominul Haque caught at leg slip by KL Rahul for two.
Left-arm spinner Jadeja, who had taken his 300th Test wicket on Monday, struck in his first over of the day when he bowled captain Najmul Hossain Shanto, who had made 19.
Shadman reached his fifty off 97 balls but fell almost immediately after to fast bowler Akash Deep.
Jadeja also picked up the wicket of veteran all-rounder Shakib Al Hasan, caught and bowled without scoring, in what could be the former captain's last Test for Bangladesh.
Shakib, 37, announced his international retirement ahead of the match, which could be his swansong if he is unable to return home for a scheduled South Africa series.
Bangladesh were bowled out for 233 when they resumed their first innings on Monday.
India then batted at a blistering pace as they declared on 285-9 from just 34.4 overs.
The teams now head into a three-match T20 series starting on Sunday in Gwalior.