Thousands of protesters are taking to the streets in Brazil's two biggest cities, protesting against 10-cent hikes in bus and subway fares.

The protesters are led by a mix of groups, mostly university students but also including what police call anarchists.

Authorities say roughly 5,000 protesters are in the streets in Sao Paulo's central area, where they're clashing with police who have been seen on TV using tear gas against the protesters. Police say 40 people in Sao Paulo have been detained, some with Molotov cocktails and knives.

Traffic in Sao Paulo, always heavy, has ground to a halt in much of the metropolis because of the protests.

Police in Rio de Janeiro say about 2,000 protested there, also against a rise in bus fares.