The People’s March for Europe passed Downing Street, through Whitehall and onto Parliament Square for a series of speeches by commentators and politicians.
Pictures on social media showed attendees draped in EU flags.
Speakers at the rally included Labour MEP Seb Dance and former Lib Dem minister Sir Ed Davey.
Davey told the crowd: “I’ve gone from anger to distress, from fury to despair. But since the Brexit negotiations begun there’s a third emotion I’ve been feeling: Embarrassment.
“Embarrassment at our country’s leaders. Embarrassment for Great Britain.”
Jean Lambert, MEP for London, said: “I want a similar meaningful vote for people in Westminster.
“Not a gift from the Government but a right. And I also want a vote for the people of this country.
“Even basic consumer protection says you have a cooling-off period, a time to consider whether or not you are being offered what fits your needs and your ambition.
“So a vote for the people, not just the politicians.”
Before addressing Lib Dem activists who are joining the march, leader Sir Vince Cable told the Press Association: “I think a lot of the people who are dealing with it directly and who don’t necessarily have a political axe to grind are pretty horrified actually because they see the potential for disastrous negotiations.
“They realise Britain doesn’t have a very strong hand in these negotiations and they are worried about the future of the country, as I am, as these people are.”
Some 1,700 people said they attended the event on Facebook.
But while organisers had hoped for thousands of attendees, other pictures showed a largely deserted Whitehall.
The rally comes before a Parliament vote on the EU Withdrawal Bill on Monday, which opponents have said allows the government to undertake a “power grab”.
Read all you need to know from the world of Brexit by signing up to HuffPost’s weekly Brexit Briefing - sent straight to your inbox every Thursday.