They did so by linking up to create human chains of solidarity.
Some 8,000 people gathered in Berlin, according to police.
The event’s organisers said more than 20,000 people attended.
Many wore protective face masks and stayed a distance away from one another in line with virus regulations.
Carrying ribbons they held at each end, the protestors formed a colourful human chain of solidarity.
They stood between the city’s iconic Brandenburg Gate and the Neukoelln neighbourhood, nine kilometres away.
The protestors held signs saying “Black Lives Matter” and “More money for education”.
The rally was organised under the hashtag Unteilbar which means “indivisible”.
A group of “Grannies against the right” gathered at the Brandenburg Gate.
They wore protective face masks, with some in pink knitted hats.
Others wrote in chalk, “The earth is also your mother” on the ground.
Berlin’s Police praised the demonstrators for following health regulations.
They called the organisers’ approach sustainable.
“You can see people are making sure to follow virus prevention rules,’’ said Police spokesman, Thilo Cablitz.
In the northern city of Hamburg, Police said 840 people formed a similar human chain using ribbon, maintaining social distancing while linking together.
They connected the city hall near the Binnenalster Lake with the main train station.
Anti-racism demonstrations were also held in Leipzig, where 1,400 people attended.
The demonstrations took place also in several other German cities.
The cities are Freiburg, Chemnitz, Detmold, Plauen, Muenster and Passau.
A rally was cancelled in the eastern city of Erfurt after a weather warning.