A Sigalert was issued and all westbound lanes were closed due to the crash, which happened shortly before 4 a.m. at the 110 Freeway interchange, the California Highway Patrol said.
Thirty-two adults were on the bus at the time of the incident, the fire department said. Four were hospitalized in serious condition, five in fair condition and 16 in good condition, according to fire officials. Seven declined to be taken to a medical center.
News video shows several bloodied passengers walking out of the bus as first responders arrive at the scene.
"I look up from my phone and I see a bus, just tilted and just dragged across the whole highway," said a witness who gave his name only as Betim. "We stopped in front of the bus, helped some people out in the front and tried to get as many people out of the bus as we could."
By 7 a.m., crews using two cranes had turned the bus upright and were preparing to tow it away.
Westbound traffic was backed up for miles on the 10. It was unclear when the interstate would be fully reopened.
The cause of the collision is under investigation by the CHP.
#TrafficCollision; 3:57AM; WB 10 FY X HARBOR FY; https://t.co/Hc4pOQGkpm; Pico-Union; Passenger Bus has turned over on the freeway with approximately 30 adults; At this time 23 adults are in good condition and 7 are in ... https://t.co/1NT2RyWZIp— LAFD (@LAFD) July 14, 2018