The children, ages 13 and younger, clambered through a roof hatch to await rescue as the 60-year-old driver called 911 to report the accident in rural Butler County, Sheriff Kelly Herzet said.
Investigators were looking into how the accident happened, but County 911 director Chris Davis said the bus apparently went off a bridge that Douglass School District officials described as a low-water crossing.
Emergency personnel decided against using boats because of the swift current, instead reaching the bus on lines and putting the children and the driver in life jackets before pulling them to dry ground.
The accident happened around 4 p.m. outside Douglass, a town of about 1,700 residents southeast of Wichita.
The driver was taken to a hospital to be checked for hypothermia and one child was seen being placed in an ambulance, but the sheriff said all of the children were eventually turned over to their parents.
Logan Parker, a 12-year-old sixth-grader, said the bus "hit a couple of bumps and then we fell into the water."
"The driver was shaking and a lot of people were screaming and crying," said Logan, who was still wet more than two hours after the accident.
Some sections of roads in the area were still covered by water from recent heavy rain, and Herzet said the bus had driven into a submerged stretch of the road.
"The lesson here is not to drive through water," he said.
Herzet credited the older children with helping get the younger ones out of the bus to await rescue.