The driver of the bus was suspected to have fallen asleep before the double-decker bus hit a divider and fell into a gap between two flyovers on the Yamuna expressway from Delhi to Agra, according to police.
20 dead as bus plunges into gorge in Indian Occupied Kashmir
The bus was taking about 50 people from New Delhi to Lucknow, in Uttar Pradesh state, when the accident happened at about 4.15am.
It fell more than 12 metres (40 feet) into a river below the road, crushing the top deck of the bus and water was complicating rescue efforts, police said.
"Twenty nine persons have died and 18 others are injured," said Agra district magistrate NG Ravi Kumar at the scene of the accident.
At least 30 dead as bus plunges off Indian mountain road
The 165-kilometre (100-mile) Yamuna expressway from Delhi to Agra is India's longest six-lane highway and about 900 people been killed on the road since it opened in 2012, according to authorities.
More than 150,000 people a year are killed on India's roads, which are notorious for poor infrastructure and speeding drivers.
COMMENTS
Comments are moderated and generally will be posted if they are on-topic and not abusive.
For more information, please see our Comments FAQ