Protesters demanding another Brexit referendum reacted with jubilation as MPs voted to force a further delay.
Supporters of the "People's Vote" converged on Westminster after marching en masse through central London calling for a "final say" on a new deal.
As MPs delivered a blow to the PM's strategy, there were loud cheers among demonstrators in Parliament Square.
Organisers said up to a million people attended the march, while police said it was "very busy".
Videos posted to social media showed the moment the vote for the amendment proposed by former Tory MP Oliver Letwin was announced.
MPs backed the measure, which withholds approval of Mr Johnson's deal and forces him to seek a delay, by 322 votes to 306.
Meanwhile, cabinet ministers Michael Gove and Jacob Rees-Mogg were heckled by protesters as they left Westminster and they both required police escorts.
Business Secretary Andrea Leadsom tweeted that she had faced "frightening" abuse outside Parliament and was "grateful" to the police.
Protesters travelled from across the UK to attend the march, which started on Park Lane ended in Parliament Square.
Ali Lothian, 60, and Mettje Hunneman, 49, travelled from Dundee and Edinburgh respectively overnight to join the protest.
Ali told the BBC she felt it was the last chance to show how strongly she felt about having another vote.