Ada Colau, the mayor of Spain's second city, had called on Barcelona residents to “fill the streets” and march under the slogan volem acollir (“We want to welcome them” in Catalan).
Local police said some 160,000 people had heeded her call.
Many of those flooding the major Via Laietana thoroughfare carried signs reading “Enough excuses, welcome them now”.
The protest comes after Spain pledged to take in some 16,000 asylum seekers from other European Union countries under a quota system agreed in 2015 as the continent struggled with its biggest migration crisis since World War II.
Like other EU members, Spain has fallen far short of this target, with only 1,100 resettled in the country so far.
Jacint Comelles, a 62-year-old potter who joined the protest with friends and family, said not enough was being done to help people who have fled conflict hoping to start a new life in Europe.
“We demand this minimum amount of dignity — that at least this number of refugees (16,000) can come,” he said. “In Catalonia, everything is ready to welcome them.”
The protest, organised by a group calling itself Castra Nostra Casa Vostra (Our home is your home), finished at the Mediterranean coast — a symbolic location given the more than 5,000 migrants who lost their lives trying to cross the sea last year.
Senior Barcelona lawmaker Merce Conesa on Wednesday said it was “shameful” that Spain had not taken in more refugees, and urged the European Commission to begin “severely sanctioning” countries that did not meet their pledges on the issue.
Barcelona, capital of the wealthy northeastern region of Catalonia, put forward a plan in August 2015 for resettling refugees from Syria, Iraq, Afghanistan and Eritrea.