Troopers said a bus from Franklinton Elementary School crossed the center line, hitting another bus from Youngsville Elementary, which was waiting at a stop sign.
A source told ABC11 charges are expected against the driver of the Franklinton bus.
At least seven children were taken to Franklin Regional Hospital. All were treated and released.
At least eight children were taken to WakeMed North, including both bus drivers.
"I was scared and didn't know. And I was shocked, because the school didn't call," said parent Mamanding Dabo.
Dabo's young daughter was onboard one of the buses.
"There was a bus coming out, and we were getting ready to turn, and then we crashed," said Sainavou Dabo, who was checked out at WakeMed, and is okay. "It was crazy. I think it was a freak accident. I don't know. I'm not sure what exactly happened."
None of the children on the two buses appear to have life-threatening injuries.
The children that weren't injured were taken by a third bus from the scene back to Franklinton Elementary School where their parents could pick them up.