Mohammed Shami took 4-31 as India dismantled Bangladesh by an innings and 130 runs inside three days of the first Test.

India's seamers - spearheaded by Shami - were in rampant form in Indore as captain Virat Kohli oversaw a win by an innings for the 10th time, overtaking the previous best for an Indian skipper of nine set by MS Dhoni.

It took India - who had declared overnight after Mayank Agarwal's inspiring 243 on day two - 69 overs to wrap up an unassailable lead in the two-match series, which finishes with a day-night test in Kolkata.

Shami, supported ably by Umesh Yadav (2-51) and Ishant Sharma (1-31), starred on Saturday, as India's bowling attack dismantled Bangladesh for 213 all out.

Yadav got things started, bowling Imrul Kayes (6), with Sharma then dismissing Shadman Islam (6) in the next over.

Sharma soon made way for Shami, who made an immediate impact as he trapped Mominul Haque (7) leg before wicket in his first over, before a wicked bouncer sent Mohammad Mithun (18) packing.

Mahmudullah (15) and Mushfiqur Rahim (64) managed to stem the tide before lunch, but Shami swiftly picked up where he left off to take his third wicket to send the former packing.

Liton Das (35) and Mehidy Hasan Miraz offered useful stands of 35 and 38 respectively, but they eventually succumbed to Ravichandran Ashwin (3-42) and Yadav.

Taijul Islam (6) became Shami's fourth victim in the 67th over and India had the win rounded off within 17 deliveries - Rahim, who was the top scorer in Bangladesh's first innings, clipping to Cheteshwar Pujara from the bowling of Ashwin, who then wasted little time in dismissing Ebadat Hossain (1).