The driver of the vehicle ferrying Hindu pilgrims from Haryana state to a temple in Akhnoor -- some 300 kilometres (185 miles) south of Kashmir's main city of Srinagar -- lost control along a serpentine mountain road and the vehicle tumbled into the ravine below.
"As a result, 21 people died," a police statement said. It was not clear whether the driver was among the fatalities.
The dead included three children, the youngest of them nine years old.
Rescue teams rushed to the spot and took 54 injured people to a hospital in the city of Jammu for emergency treatment.
Images posted on social media showed the badly crushed bus lying in a forested area as rescuers scrambled to save the injured.
Road accidents are common along the many mountainous roads in the Himalayan region, caused mostly by poor maintenance and reckless driving in the tortuous terrain.
In November, 30 people were killed in the Doda area when a passenger bus plunged down a rocky slope.