Indigenous protesters in traditional headdress clashed with police in Brazil’s capital, resulting in one officer being shot in the leg with an arrow.
The violence in Brasilia forced the cancellation of a ceremony to open an exhibition featuring the World Cup trophy.
Riot police fired tear gas into small pockets of protesters as they approached the city’s new stadium for cup matches.
Protesters were seen picking up the gas canisters and throwing them back at officers, along with stones and pieces of wood.
Some armed with bows fired arrows at mounted police, hitting an officer in the leg. Authorities said surgery was required to remove it. Activist groups said at least two indigenous people were also injured.
Some protesters climbed on to the roof of the congress building in a protest they said was aimed at protecting their rights.
Tamalui Kuikuru, an indigenous leader from the Xingu region in the western state of Mato Grosso, said: “Climbing on to the congress building was an act of bravery, it shows we’re warriors who defend our rights.”
The group soon rejoined the rest of the protesters along the main avenue where Brazil’s government ministries are located.
“Who is the Cup for? Not us!” shouted demonstrators. “I don’t want the Cup, I want money for health and education.”
Neguinho Truka, of the Truka people in the northern state of Pernambuco, who was wearing a headdress of red and blue feathers, said: “Before organising the World Cup, Brazil should have thought more about health, education and housing.”
The clashes, which drew about 300 demonstrators, ended by nightfall. But the violence forced officials to call off a ceremony just outside Brasilia’s stadium where the World Cup trophy was to be exhibited.
Indigenous activists were there to complain about legislation before congress that threatens to shrink the size of some reserves for indigenous groups.
They were joined by demonstrators rallying against Brazil’s hosting of the World Cup. Many Brazilians are angry about the billions being spent on the tournament, saying the money should have gone towards improving woeful public services.
Brazil has seen almost daily protests in the weeks leading up to the World Cup, which begins on 12 June. .
Bus drivers in Rio de Janeiro have gone on a 24-hour strike and professors marched in Sao Paulo, South America’s largest city, to demand pay rises. About 500 teachers peacefully rallied on Tuesday for higher salaries.
A spokesman for the military police said Tuesday’s protest started peacefully and that police were trying to contain the march with tear gas and walls of shield-bearing police.
Brasilia’s stadium will cost 1.9 billion reais (£506 million) when the surrounding landscaping is finished after the World Cup – almost three times the price tag first budgeted.
Brazil’s President Dilma Rousseff has promised the Homeless Workers’ movement that squatters gathered around some of the stadiums will receive low-cost government housing.