A bus has lost control and plunged into a ravine in Brazil's Sao Paulo state, killing at least 15 passengers and injuring 31.

The driver lost control of the bus about 120 kilometres from the country's economic capital, and crashed the vehicle into a rock in the opposite lane.

The impact caused the vehicle to overturn and fall into a ravine, rescue services said.

The passengers were mostly students, AFP reports.

The students were from three schools in the town of Mogi das Cruzes and were headed to the coastal town of Sao Sebastiao in dark and foggy conditions, according to the Globo G1 news network.

The driver was among the dead, several media outlets reported.

About 43,000 people die each year on Brazil's roads with accidents surging by 24 per cent between 2002 and 2012.

Before the country's economic boom slowed down, about 10,000 new cars took to the roads each day.

One of the deadliest accidents happened in March 2015 when 54 people died after a bus fell 400 metres down a steep bank in the south-eastern state of Santa Catarina.

AFP