The private bus, carrying nearly 40 passengers, was heading to Sainj in the Kullu district of the Himalayan state in the early morning, said police chief Ashutosh Garg.
It left the road and was crushed by the impact of the fall.
Rescue teams, officials and ambulances rushed to the site, where they were helped by villagers.
Several bodies were recovered. Many more were feared trapped under the wreckage of the vehicle.
At least three injured people were taken to hospital.
Prime Minister Narendra Modi announced monetary compensation of 200,000 rupees ($2,500) for the bereaved families of those killed, and 50,000 rupees for the injured.
Mr Modi said: “The bus accident in Kullu, Himachal Pradesh is heart-rending. In this tragic hour, my thoughts are with the bereaved families.”