MPs have rejected Theresa May’s EU withdrawal agreement on the day the UK was due to leave the EU, the BBC reports.
The government lost by 344 votes to 286, a margin of 58.
It means the UK has missed an EU deadline to delay Brexit to 22 May and leave with a deal.
The prime minister said the UK would have to find "an alternative way forward", which was "almost certain" to involve holding European elections.
Thousands of Leave supporters gathered outside Parliament to protest against the delay to Brexit, bringing traffic to a standstill.
Mrs May now has until 12 April to seek a longer extension to the negotiation process to avoid a no-deal Brexit on that date.