The roof of a double-decker bus “peeled open like a can of beans” after it crashed into a low bridge in York.
It happened on Leeman Road on Thursday afternoon when it hit a railway bridge, North Yorkshire Police said.
Nobody was injured in the crash even though the Reliance bus was carrying passengers, but the road remains closed.
Train services are running but there have been some delays, Network Rail said.
A woman who lives on Leeman Road, and gave her name as Sarah, said: “I’ve just got home to a bus that has been peeled open like a can of beans. It’s just chaos really.
“There is literally no roof on this bus whatsoever.”
Another eyewitness, who gave her name as Karen, said there was a “massive crunch and bang and the whole roof came literally flying off, I was shocked”
Reliance Buses tweeted: “Our staff are responding to the incident and we are working hard to establish the circumstances”.
Recovery vehicles arrived at about 17.30 GMT, but the road closure caused additional delays for rush hour traffic.