The accident took place in the Railway Ganj locality after the bus driver lost control of the vehicle, they said.
"A private bus broke the railing of the flyover and fell down. Thirty-one people were injured and two died," Principal Secretary, Home, Arvind Kumar said quoting a report from the Hardoi additional district magistrate.
The injured have been hospitalised and their condition has been stated as critical, the police said.
Thirty-five passengers were onbaord the bus, which was coming from Gopamau.