Demonstrators marched under banners bearing slogans such as “No to Independence” and “Stop the Coup” – a reference to the regional government's plan to hold an independence referendum, which the central government in Madrid says is unconstitutional, by September.
“I don't want independence, I am Spanish,” said Gloria Chicote, a 60-year-old nurse who moved to Barcelona from the northern city of Burgos three decades ago.
It was the first protest staged by the Catalan Civil Society, a platform set up in 2014 to oppose independence for Catalonia, a wealthy region in northeastern Spain that is home to 7.5 million people.
Barcelona city hall estimates 6,500 people took part in the march, which wrapped up outside the offices of the regional Catalan government. Organisers estimated over 15,000 people showed up.
Pensioner Manuel Lopez said Catalan separatist leaders had “poisoned our society” with their independence drive.
Parties that want Catalonia, which has its own distinct language and customs, to break away from Spain won a majority of seats in the regional parliament for the first time in local elections in 2015.
Demands for autonomy have been fuelled by Spain's economic downturn, leading many to resent sending tax money to Madrid to prop up poorer regions.
Recent attempts by Madrid to interfere with Catalan education have further stoked passions as did a 2010 ruling by Spain's Constitutional Court in 2010 that stuck down part of a 2006 autonomy statute that recognised Catalonia as a “nation” within Spain.
Opinion polls show Catalans are evenly divided on independence.
“The battle is not completely lost. It is reversible but Madrid needs to be much more present in Catalonia,” the head of the Catalan Civil Society, Mariano Goma Otero, told AFP.
The central government in Madrid should boost investment in infrastructure projects in Catalonia and be more sensitive to the region's language and culture, he added.
Prime Minister Mariano Rajoy has called any attempt to hold a vote on leaving Spain “anti-democratic”, saying Spain's constitution prevents any region from unilaterally taking decisions that affect all Spaniards.