The bus carrying young students home in Himachal Pradesh state flew off a cliff near Nurpur, about 325 kilometres from the state capital Shimla, and crashed into a valley.
“The bus rolled into a 200 feet deep gorge, killing 27 schoolchildren, two teachers and the driver,” a senior local police official, Santosh Patial, said from the scene.
“My first priority was to save lives. We will now investigate the reasons for the accident,” he said.
Most of the students were aged between 10 and 12 years and hailed from a local school, he added. Twelve have been rushed to hospital, most in a critical condition.
Onlookers rushed to search the mangled yellow bus upturned on the valley slope for survivors.
Images from the scene showed injured children being carried away bloodied and bruised, some on stretchers and others in the arms of bystanders.
The state government has announced 500,000 rupees (B240,663) in compensation for each victim’s family.
India has some of the world’s deadliest roads.
More than 150,000 people are killed each year with most accidents blamed on poor roads, badly maintained vehicles and reckless driving.
Last month, a truck carrying a wedding party drove off a bridge in western India killing 30 people, mostly women and children.
Nine children were killed in February when a vehicle crashed into them outside their school in an apparent hit-and-run.
And thirty-two people died in late December when their bus swerved off a bridge into a riverbed in Rajasthan state.
Lives are frequently lost in India’s remote, mountainous northern reaches, where narrow hairpin turns cut paths into the steep Himalayan foothills.
Last July, a bus rolled off a cliff around 100 kilometres from Shimla, a hill resort popular with tourists, claiming 28 lives.
Prime Minister Narendra Modi said he was anguished by the loss of lives in the latest incident.
“My prayers and solidarity with those who lost their near and dear ones in the accident,” he tweeted.