The demonstration was called by an alliance of peace, human rights and environmental protection organisations, trade unions and churches.
In a written appeal, organisers condemned the “increasingly brutal” attacks against civilians in Ukraine, and praised the courage of Russians protesting against Moscow’s actions.
“Together, we call on Putin to immediately stop the attacks, withdraw from Ukraine and restore the nation’s territorial integrity,” the letter said.
In Berlin, demonstrators, including young and old, families and children, massed at Brandenburg Gate. Some carried yellow and blue balloons, the colour of Ukraine, while others waved placards with slogans such as “Stop the War”, “Peace”, “What happened to the vaccine against war?” and “Stop Putin”.
The turnout in Berlin on Sunday was smaller than the 100,000-strong crowd that attended a Ukraine solidarity march in the capital two weeks ago, three days after Russia launched its invasion.
In Frankfurt, around 11,000 people gathered in solidarity with Ukrainians, according to a police spokesman, who said the rallies proceeded “peacefully and without incident”.