Police used tear gas, stun grenades and pepper spray to disperse a violent demonstration held to protest against an increase in bus and tube fares in Sao Paulo, the biggest city in Brazil.
Similar but less violent protests against increased bus fares were also held in Rio de Janeiro and Belo Horizonte.
The protest in Sao Paulo began peacefully but quickly turned violent when some masked demonstrators started throwing rocks at police.
The Sao Paulo state public safety department said some activists among the estimated 3,000 protesters hurled rocks and pieces of wood, injuring three police officers.
Protesters also smashed store and bank windows and set fire to at least three buses, it said.
The demonstrations were reminiscent of those in June 2013 to protest against increased public transport fares.
Those protests mushroomed into nationwide demonstrations against government corruption, poor public services and the billions being spent by Brazil to host the 2014 World Cup and the 2016 Olympics.