Shakib Al Hasan provided brief entertainment for Bangladesh but India kept their cool to win the first Test by 188 runs and take a 1-0 lead in the two-match series in Chittagong on Sunday.
The result and first-placed Australia's convincing win over South Africa in Brisbane on Sunday moved India up to second in the ICC Test Championship rankings.
The top two sides will lock horns when Australia tour India in early 2023.
Set an enormous 513 to win, Bangladesh put up dogged resistance with Zakir Hasan scoring a century on debut on Saturday in a record opening partnership for the hosts against India with Najmul Hossain who made 67.
Skipper Shakib made a marauding 84 that included six sixes but he was bowled by Kuldeep Yadav on day five and the hosts quickly folded for 324 all out after an hour's play.
Needing an academic 241 runs with four wickets remaining for the win on day five, Mehidy Hasan signaled an attacking intent for Bangladesh, hitting Mohammed Siraj for four through cover in the first over.
Siraj came back in the next over to force Mehidy to give a catch to Umesh Yadav at the backward point, leaving the onus on Shakib to take the game forward.
Kuldeep dismissed Shakib and Ebadot Hossain in successive overs, finishing with figures of 3-73 while Axar Patel claimed the final wicket of Taijul Islam to return with 4-77.
Kuldeep, who also claimed 5-40 in the first innings, was named player of the match.
"Getting runs was hard on the first three days. The way their openers batted, we had to work hard. Our intensity was really high," said India captain KL Rahul.
"The pitch wasn't really assisting the bowlers, but they found something... We've built this attack over the years. They are showing what quality they have," he added.
Bangladesh captain Shakib blamed their poor batting for the loss after being skittled for just 150 in the first innings.
"It was a really good wicket to bat on but we didn't bat well (in the first innings). Playing after five to six months, it wasn't ideal but there should be no excuses. Lot of credit to India the way they bowled," he said.
India, who have never lost a Test to Bangladesh, put on 404 in the first innings thanks to 90 from Cheteshwar Pujara and 86 by Shreyas Iyer.
In the second innings, Pujara was again India's rock, reaching 102 not out alongside Shubman Gill who made 110, allowing the visitors to declare on 258-2.
The second Test for the series will begin at Dhaka on Dec. 22.