A ninth “day of action” against France’s new labour law was marred by violence.
Several hundred men wearing balaclavas threw Molotov cocktails and other objects at police, who used water cannon to defend themselves.
The protest march from the Place de l’Italie to the Esplanade des Invalides in Paris was repeatedly shrouded in tear gas.
Twenty-six people were injured, including 20 police. Twenty-one people were arrested.
Several bank windows were smashed in. Police said protesters stole wooden palettes from a construction site at Port-Royal and threw them at police.
Protesters chanted, “Paris rise up!” and “Everybody hates the police,” the day after a police officer and his partner were killed by an Islamic State jihadist outside Paris.
The CGT, FO and Solidaire unions, who organised the march, claimed one million people participated, though police said it was 70,000-80,000.
The unions complained of transport difficulties, even though have been involved in a strike at the SNCF railway company for two weeks. A total of 600 coaches were hired to ferry demonstrators from the provinces. The strike had dwindled to 4.6 per cent of railway workers, but rose to 7.3 per cent on Tuesday.
The CGT says it does not want to spoil the "popular fête" of the Euro 2016 football championship. No matches were scheduled in Paris on Tuesday.
Tuesday was the last day of Air France pilots planned strike. The Eiffel Tower was closed because some of its staff stopped work.
The unions have called two more protest days, on June 23rd and 28th.