Organisers said at least 150,000 people turned out for the march, although Berlin police were yet to release their own estimate.
It's already a success,” said Theresa Hartmann, spokeswoman for the #unteilbar (indivisible) movement, who said they had only been expecting 40,000 people to turn up.
The marchers walked in balmy weather through the city centre before gathering at the Brandenburg gate where a number of German groups performed.
They shouted anti-Nazi slogans and carried placards in favour of rescue missions on the Mediterranean Sea and others saying “More love, less hate” and “No room for Nazis.”
The #unteilbar collective, made up of a number of activist groups and individuals, has already staged demonstrations in the northern city of Hamburg and Munich in the south, that attracted thousands.
They are supported by trades unions, religious organisations and some charities. Foreign Minister Heiko Maas, a member of the Social Democratic Party (SPD), posted a message of support on Twitter.
The march was partly in response to the rise of the anti-immigration Alternative for Germany (AfD) party.
Building on the backlash to Chancellor Angela Merkel's decision to admit more than a million refugees in 2015 and 2016, it won its first parliamentary seats in elections last year.
At the end of August a far-right demonstration in the eastern city of Chemnitz after the murder of a German that was blamed on a refugee degenerated into attacks on foreigners.
Early in October, German police arrested six men on suspicion of having taken part in the attacks, describing them as members of a far-right “terrorist” group.