French police have fired tear gas on masked protesters who joined large May Day demonstrations in Paris.
Traditionally a union-led day of action in the country, this year's event brought both the "yellow-vest" movement and so-called "black blocks" of dark-clad protesters onto the streets.
Some smashed shop windows and threw projectiles at the more than 7,000 officers deployed.
Police responded with tear gas and water cannon, and arrested 380 people.
About 38 people were wounded, including 14 officers - one of whom was hit in the head with a paving stone.
The clashes forced the head of the CGT union to temporarily flee the march, and the group said their leader had been tear-gassed.
Philippe Martinez told news outlet France Info that "police charged the CGT", though other witnesses said the "black blocks" had attacked the union march.
AFP news agency says Mr Martinez planned to return.
Police issued a statement saying the union was never targeted, but that officers "carried out their mission with determination against violent thugs".
French broadcaster BFMTV reports that the clashes forced the teachers' union FSU to leave the event.
Is this year's protest larger?
By early afternoon, France's interior ministry said more than 150,000 demonstrators had taken to the streets around the country, and at least 16,000 in the capital - a significant increase on last year's estimates.
Another estimate from media groups put the number far higher, at some 40,000 in Paris.
Yet most demonstrators have been non-violent, and clashes with police have occurred in isolated pockets.
France's National Police tweeted a message saying it was guaranteeing the right to express opinions, and called on peaceful protesters to disassociate themselves from violent groups.
Elsewhere, one French journalist reported that while the riot police were subjected to insults, the firefighters of Paris were warmly applauded by passing demonstrators.
Many protesters have joined from the yellow-vest movement, which has been protesting every weekend for months.
French President Emmanuel Macron has made a series of concessions to the movement which has been fuelled by the high the cost of living - most recently with a wave of tax cuts.
One demonstrator, Florence, said the concessions had not made a difference.
"We've been trying to fight, to make ourselves heard for six months and nobody cares," she told Reuters news agency.
"People don't understand the movement though it seems pretty simple: we just want to live normally."