The most seriously hurt in the Thursday afternoon crash was the driver, who had to be cut from the bus and pulled through the windshield before he was taken by ambulance to University of California, Irvine Medical Center, authorities said.
Two students were also in critical condition, and nine others had more minor injuries, Anaheim police Lt. Bob Dunn said. Most were released to their parents.
Student Jak Pintches, 14, said the bus went off the road during a turn.
"I flew out of my seat and hit the other side of the bus" and injured his back, the teenager told the Orange County Register.
Part of a tree went into the bus and cut a girl's leg, he said.
After the crash, someone ran up and told everyone to get off because the bus was leaking gasoline, he said.
The California Highway Patrol, which is heading the investigation, said preliminary evidence shows the driver may not have hit the brakes before crashing.
"I don't see any skid marks," CHP spokesman Florentino Olivera told the Los Angeles Times. "It looks like he went straight into the tree."
The bus was taking students home from an after-school activity at El Rancho Charter Middle School in Anaheim when it crashed next to Anaheim Hills Golf Course, said a statement from Michael L. Christensen, superintendent of the Orange Unified School District.
Witness Andrea Shurtz, one of many people driving nearby who saw the crash, said the bus was going fast when it hit a curb and appeared to go airborne.
"It came flying down the hill," Shurtz told KABC-TV, "and took out trees along the way."
Shurtz said the driver and several students were hanging out of the bus's windows and yelling for help from passing drivers.
"Kids were screaming. Gas was pouring out the back," Shurtz said. "People just came running from everywhere."
The bus was equipped with seat belts, police said, but it wasn't clear how many of the students were wearing them.