"I went outside, and everything was in flames already," a local resident, Luis Lopez, told CNN affiliate KXTB. "There were a couple of explosions after that."
The reason the FedEx truck crossed the median remains under investigation, the Highway Patrol said. The investigation could take months.
At least 34 people were taken to local hospitals, authorities said.
The bus was taking students from various Los Angeles-area schools to visit Humboldt State University in Arcata. The collision occurred in Orland, about 100 miles north of Sacramento.
One of the survivors chronicled his experience through Twitter.
"i was asleep and next thing you know i was jumping out for my life," Jonathan Gutierrez wrote, saying he couldn't believe what just happened.
He wrote that he suffered a bruised leg, cut eyebrow and scratches. Later, he said his left leg was injured to the point that he couldn't walk.
"All my stuff that I packed is burned. I'm beyond thankful that I'm still here," Gutierrez tweeted.
He called the experience traumatizing.
"Seeing everyone hurt was not how i expected my day to go," he said.
In a prepared statement, the university said it got word of the crash but was working to find out more details.
"Our thoughts and prayers are with everyone involved in the tragic accident on I-5 in California. We are cooperating fully with authorities as they investigate," FedEx spokeswoman Bonnie Kourvelas said.
The truck sideswiped another car before crashing into the bus. The two occupants of that vehicle were not seriously injured but were sent to a hospital for treatment.
Tommy Chang, the instructional superintendent for the Los Angeles Unified School District, confirmed there were local students involved. He declined to provide additional details.
"The first priority is informing parents," he said.