Rescuers pulled out “bags of body parts” from the survivors of the crash on Route 99, where the speeding bus hit the pole of a highway exit sign head-on, said Merced County Sheriff Vern Warnke.
It sheared straight through the bus, stopping at the first rear axle “with a great impact”, he said.
Emergency workers climbed in through the windows to pull out trapped passengers. Others were ejected and were lying in a ditch.
Five people were killed and at least five others were airlifted to hospitals, said Highway Patrol officer Moises Onsurez.
He did not have information about any additional injuries or the cause of the single-vehicle crash.
“The pole went through the centre of the bus, and that’s where the injuries were sustained,” he said.
The still-intact sign stuck out from the roof of the crumpled bus. Wreckage and debris including seat cushions, drink containers, pillows, and a blanket were scattered in lanes and on the shoulder of the highway, near the town of Livingston.
Onsurez identified the driver as Mario David Vasquez from the Los Angeles area. The 57-year-old was among those with major injuries and was airlifted to hospital.
The bus, operated by Autobuses Coordinados USA, was heading to Washington state and was due in Livingston at 1.30am local time to change drivers.
The crash occurred just before 3.30am between the community of Atwater and Livingston, a few kilometres down the highway.
The Federal Motor Carrier Safety Administration listed the carrier as having a “satisfactory” rating as of May 17. The bus was inspected in April and had three violations, including a lack of or a defective brake warning device.
That violation was not further described, and there was no indication if each of the items had been fixed.
The highway runs through farm fields and almond orchards in the San Joaquin Valley north-west of Fresno. Its northbound lanes were closed during the investigation, backing up traffic.