Three children were seriously injured when their school bus hit a railway bridge.
The double-decker’s roof was torn off in the crash in Wellhouse Lane, Winchester, shortly after 08:10 BST.
Pupils from Henry Beaufort School “started screaming” when the roof fell on top of them, leaving a further 13 needing treatment for minor injuries.
Bus operator Stagecoach South said an investigation was under way. No arrests have been made.
The three badly hurt children were taken to hospital. Twelve other youngsters, two of whom were also taken to hospital, suffered minor injuries, Hampshire Constabulary said.
All pupils on board were aged between 11 and 16, the force said.
Poppy, 11, who was sitting on the top deck of the bus, said the children had noticed the driver was “going on a completely different route” in the moments before the crash.
She said a metal pole struck her on the head and others were hurt by breaking glass.
“There was blood everywhere – everyone was in a rush to get down, but we were all trying to help each other,” she added.
Zoe, 14, who was also on the top deck, said the roof fell in on top of everyone “and everyone started screaming”.
“It felt like ‘am I going to live or am I going to die’ – everyone was crying and shaking it was a huge shock”, she said.
Fifteen-year-old Robert, who was on the lower deck of the bus, said: “I heard crashing upstairs. I thought we’d hit the side of the tunnel, then I saw the top of the bus falling down.
“Most of the people hurt just had cuts and were bleeding. But there were some people with bad injuries,” he added.
The bridge has a warning sign above it which states that vehicles with a height of more than 12ft (3.6m) should not enter.
The bus involved with the crash was believed to be about 14ft (4.3m) tall.
Winchester MP Steve Brine said: “Of course no-one should jump to conclusions or speak without the facts but it’s obvious there are very serious questions to be answered here and constituents should know they are already being asked.”
A spokesperson for Stagecoach South said: “Our thoughts are with the children and their families.
“We are carrying out an internal investigation into the circumstances involved in the incident and we will continue to provide the emergency services with our full support.”
The road remains closed between the junction with Andover Road North to School Lane.
Hampshire County Council said staff were providing support to the school “including our education psychology team to help students and staff to deal with any trauma they may experience”.
A police spokesman said they were working with the school and county council children’s services to provide support to students and parents.
Please include a contact number if you are willing to speak to a BBC journalist. You can also get in touch in the following ways: