Thirty-one passengers were injured in the accident near Sao Lourenco da Serra, 50 kilometres south of Sao Paulo.
The driver was suspected of falling asleep at the wheel, a police spokesman told the news portal G1. Few accidents occur on the well-marked curve, he said.
A passenger speculated that the bus might have slid on patches of oil on Highway 116.
The bus was travelling from Curitiba to Rio de Janeiro when the accident happened.
Follow us on Twitter @TRENDNewsAgency