Paris police on Saturday fired tear gas to drive back protesters marking the first anniversary of anti-government "gilets jaunes" ("yellow vest") demonstrations.
On the Place d'Italie in southern Paris, demonstrators, many clad in black and hiding their faces, set bins on fire and hurled projectiles at riot police while building barricades.
An HSBC bank branch was attacked, two cars were overturned, a scooter and car were on fire and police responded with tear gas and a water cannon.
Paris police prefect Didier Lallement cancelled permission for a scheduled demonstration in view of the violence.
"Our response will be very firm. All those who are hiding their face, all those who are throwing stones are going to be called in for questioning," he told a news conference.
The authorities said that 147 people had been detained by 20:00 CET.
Clashes also broke out between demonstrators and police near the Porte de Champerret as protesters were preparing to march across town towards Gare d'Austerlitz.
Police also intervened to prevent a few hundred demonstrators from occupying the Paris ring road, according to Reuters TV footage.
The protests, named after the high-visibility jackets worn by demonstrators, erupted in mid-November 2018 over fuel price hikes and the high cost of living. The demonstrations spiralled into a broader movement against President Emmanuel Macron and his economic reforms.
The protests lost strength in recent months, going from tens of thousands of participants to just a few thousand, but the movement's leaders called for people to turn out on Saturday to mark the first anniversary.
At its peak in late 2018, the movement grew to up to 300,000 people.
Protests have been banned near tourists spots such as the Eiffel Tower and many subway stations were closed on Saturday.