However, the rally drew fewer people than organisers hoped, with police saying only around 2 500 had gathered in Berlin’s Potsdamer Platz while the pope was delivering a speech at the Reichstag parliament building.
In the run-up to Benedict’s visit, organisers had spoken of a protest numbering as many as 20 000.
One demonstrator was dressed as a giant nun clutching a crucifix and a wooden stick with “never again” emblazoned across her robe, a reference to the high-profile abuse scandal that rocked the Church in Germany last year.
Another wielded a banner proclaiming: “Pope Go Home,” as he began his first state visit to his native Germany.
Other demonstrators were protesting against the pope’s ban on artificial contraception, with signs reading: “Free choice between Aids and condoms.”
Several dozen leftist deputies also boycotted the pontiff’s speech in parliament, amid concerns over the separation of Church and state.
Berlin’s large gay community was also out in force to protest what it says are Benedict’s outdated views on sexuality, some carrying banners saying, “Homophobia kills.”
Protests in Spain last month against the pope’s visit turned violent, with clashes between riot police and demonstrators. Thousands turned out to protest against the cost of the pope’s visit amid an economic crisis in the country.