Eighteen people were injured, some critically, police said.
More than 150,000 people a year are killed on India's roads which are notorious for poor design and speeding drivers.
The 165-kilometre (100-mile) Yamuna expressway was India's longest six-lane highway when it opened in 2012 but about 900 people been killed on the road since, according to authorities, and Indian media have dubbed it the "highway to hell".
The state-run bus was taking more than 50 people from Lucknow in northern Uttar Pradesh state to Delhi when the accident happened at about 4.15am (2245 GMT) some 20 kilometres outside of Agra.
It fell more than 12 metres (40 feet) into a drain below the road, crushing the roof of the bus. Running water in the drain complicated rescue efforts, police said.
"Twenty nine persons have died and 18 others are injured," said Agra district magistrate N.G. Ravi Kumar at the scene of the accident. "It appears that the driver was drowsy."
People living in the area said they were woken by the crash and found the badly-mangled bus submerged in blackish-grey water.
"We rushed out of our homes and saw people screaming for help. We got into the drain and tried to save some of them. Soon police arrived and quickly brought cranes," one witness told reporters.
Crash-prone highway
Most of the victims were sleeping when the driver lost control of the vehicle which had the Taj Mahal painted on its white exterior.
State Chief Minister Yogi Adityanath ordered an investigation into the crash and cash compensation of 500,000 rupees ($7,289) for the family of each of the dead.
"The (probe) committee will give a report on the cause of the accident and also suggest long-term measures to avoid such mishaps," government official Awanish Awasthi said.
The Yamuna expressway was intended to be a symbol of modernity when it was opened, speeding up journey times from Delhi to the key region. But authorities admit there are key safety concerns.
In 2017 alone 763 crashes were reported on the Yamuna expressway, which resulted in 145 deaths, authorities told the Save Life Foundation, a non-profit group that works on road safety.
Fatalities on Indian roads are often blamed on speeding and drunk driving but experts say many highways suffer from design flaws, making rides a daily risk.
India's Defence Minister Rajnath Singh called the latest accident "heart wrenching" and expressed his condolences to grieving families. —AFP