After mostly peaceful demonstrations against neo-Nazi marches during the day on Saturday, rioting broke out at night as police used water cannons and batons against left-wing and anarchist protesters.
In Hamburg, police used water cannons after demonstrators began throwing rocks and bottles at officers. Some in the far-left crowd also looted a drugstore, broke windows at several businesses and vandalised two bank branches. Cars were overturned and barricades lit on fire.
Police responded with a baton charges to especially violent groups of youth. Five officers were injured along with a firefighter.
The violence was concentrated in Hamburg's Schanzenviertel neighbourhood and police operations to calm the area lasted until early Sunday morning. Police report that 21 people were arrested and 8 taken into custody. Some 1,200 officers from the city's own forces and the state and federal police were deployed.
In Berlin's Kreuzberg district, police also used water cannons and baton charges against rampaging demonstrators. Youth from the left-wing scene threw rocks, bottles and firecrackers at police, injuring one.
Despite the clashes, police reported that this May Day in Berlin was more peaceful than in 2009, when rioting left 500 police injured and resulted in close to 300 people being arrested. This year police attempted to remove troublemakers from the crowd early.
Police reported no serious May Day-related violence in other German cities.