A minibus veered off a steep road in rainy conditions near the town of Karatu, in Arusha region, on Saturday morning and plunged into a river, said regional police commander Charles Mkumbo.
The children, aged 12 to 13, were standard seven pupils at the Lucky Vincent school in the nearby town of Arusha, according to Mkumbo.
“We lost 29 students and two of our staff, and the driver died too,” said Innocent Mushi, director of the Lucky Vincent Primary School in the northern city of Arusha, where the children were pupils.
The dead included 12 boys and 17 girls, he said.
Several other children were wounded, some of them severely, according to police.
President John Magufuli described the accident as a “national tragedy” in a statement.
Tanzania, the second-largest economy in east Africa, has a poor road safety network, but buses remain the main form of public transport between towns.
More than 11,000 people were killed in road accidents in Tanzania between 2014 and 2016, according to government data.