The driver lost control of the bus after the collision near Malshej Ghat, a hilly tourist spot about 160 kilometers (100 miles) northeast of Mumbai, said police officer Raghunath Yadav.
He initially reported 11 killed but the death toll has since risen to 30 as more bodies were pulled out.
Yadav said another seven people injured in the accident were hospitalized, some of them in serious condition.
Rescuers were looking for several passengers who were still unaccounted for, he said. The bus was reported to be carrying 40 people.
India has the world's deadliest roads, with more than 110,000 people killed annually. Most crashes are blamed on reckless driving, poorly maintained roads and aging vehicles.
Take ABC13 with you!
Download our free apps for iPhone, iPad, and Android devices