The crash happened early on Monday near the city of Agra, 336km (208 miles) from the state capital, Lucknow.
The bus was carrying about 50 people and travelling from Lucknow to the Indian capital, Delhi.
Road accidents are frequent in India, with one taking place every four minutes.
Locals rushed to the spot to help and rescued 20 injured passengers.
Reports said that the driver fell asleep and lost control of the double-decker bus before it went off a highway and plunged into a drain below.
The 165km (100-mile) Yamuna expressway from Delhi to Agra is India's longest six-lane motorway.
One Sleeper Coach passenger bus travelling from Lucknow to Delhi met with an accident on Yamuna Expressway. It fell into the side fall about 15 feet deep.
20 passengers rescued so far. Efforts are on for the rest.
About 900 people have been killed on the road since it opened in 2012, according to authorities.
Road accidents in India are usually blamed on badly maintained vehicles, poor driving and the state of the roads.
Correspondents say buses in rural India are often old and rickety. Many also do not follow or enforce basic safety measures - it's not uncommon to see people crowding into buses or even travelling on the roof if they cannot find a seat inside.
More about: India