Organisers rallied thousands of people in the centre of the Brazilian city to demonstrate for the teachers, who are demanding pay increases and an overhaul of the education system because they say there is a shortage of 300,000 teachers in the country, leading to crowded classrtooms.
The demonstrators have already rejected the government's proposals of a 15% pay rise.
The protest began peacefully, with demonstrators occupying one of the city's major boulevards. According to police, about 10,000 protesters filled the streets. The teachers' union, however, put that figure at closer to 50,000 people.
The scene turned violent after the marchers reached city hall. A small group of protesters threw fireworks, grenades, tear gas and set fire to a barricade of rubbish near the public building, where legislation was recently passed changing public teachers' pay and working hours.
Some protesters broke into banks and tried to break break into cash machines. Some banks were set alight.
Demonstrators also set a bus alight on busy Rio Branco Avenue, and took furniture out of banks to use in barricades as the stand-off off with police continued.
The police responded with tear gas to disperse the crowds. Masked demonstrators also attacked banks and later lit a public bus on fire.
Angela Tenorio, a doctor at the demonstration, said: "We don't have politicians, we have thieves, scoundrels, villains."