Ongoing work stoppages by police and teachers and the threat of a nationwide strike by federal police also raised fears of chaos with just four weeks to go before the Cup kicks off.
A total of 10,000 people took to the streets in Belo Horizonte, Brasilia, Manaus, Porto Alegre, Rio and Sao Paulo, according to police.
In business hub Sao Paulo, about 5,000 members of the Homeless Workers´ Movement (MTST) set fire to car tires and marched to the Corinthians Arena, which will host the opening match between Brazil and Croatia on June 12.
Protesters also surrounded buses full of passengers and smashed the glass of vehicles at a car dealership that is an official FIFA sponsor. Police used teargas against the masked demonstrators, dispersing the march into small groups.
At least 20 protesters were arrested in Sao Paulo, according to police. Local media said at least two photographers suffered minor injuries. In both Rio and the capital Brasilia, police used pepper spray to disperse small groups as the major protests winded down.
In the northeastern city of Recife, youths earlier took advantage of a partial strike by military police to loot stores and go on the rampage.
A total of 170 people were arrested there over two days. After blocking off several streets, Sao Paulo protesters held a rally about 300 metres (yards) from the stadium as they slammed a “World Cup without the people”.
Former president Luiz Inacio Lula da Silva, at the forefront of efforts to win the country´s hosting rights seven years ago, criticized the “virulent” protests.