Voters are set to head to the polls on 12 December after MPs supported a pre-Christmas general election.
The House of Commons voted by an overwhelming majority of 438 to 20 in favour of an election in little more than six weeks’ time.
It would be the first December election since 1923 and dominated by debate over the UK’s delayed departure from the EU.
The bill for an early general election will now pass to the House of Lords on Wednesday, where peers will scrutinise the proposed legislation.
Boris Johnson addressed Tory MPs in parliament immediately after his call for a ballot was approved.
Speaking afterwards, the prime minister admitted it would be a “tough election”.
“It’s time for the country to come together, get Brexit done and go forward,” he said.
Labour leader Jeremy Corbyn – who had withheld his party’s support for Mr Johnson’s repeated call for an election until today – claimed the ballot would be a “once-in-a-generation chance to transform our country”.
He promised the “most ambitious and radical campaign for real change that our country has ever seen”.
Mr Johnson and Mr Corbyn will face each other at Prime Minister’s Questions on Wednesday, as a likely precursor to their election sparring.
Liberal Democrat leader Jo Swinson said the election would be the “best chance to elect a government to stop Brexit”.
She revealed talks over the Lib Dems forging an election alliance with fellow Remain-backing parties, Plaid Cyrmu and the Green Party, will be “accelerated” ahead of polling day.
Tuesday’s vote was Boris Johnson’s fourth attempt to take the UK to the polls since he became prime minister three months ago.
He finally won the support of opposition parties for an early election after making a reluctant request to the EU for a three-month delay to Brexit, to 31 January.
Eleven Labour MPs, one SNP MP, one Green MP and three Independent Group for Change MPs were among the 20 to vote against an election.
Mr Corbyn had earlier failed with an attempt to change the date of the election from 12 December to 9 December.
Opposition parties had wanted to bring forward the polling day in order to prevent Mr Johnson trying to pass his Brexit deal before parliament is dissolved.
Mr Corbyn has also expressed concerns about whether students would have already finished their term and gone home by 12 December, which he claimed could leave them disenfranchised if they are registered to vote at their university address.
MPs opposed the Labour leader’s bid to change the election date by three days by 315 votes to 295.
European Council President Donald Tusk announced on Tuesday the EU had formally accepted the extension to the Article 50 negotiating period.
But he warned the UK’s latest extension “may be the last one”, adding: “Please make the best use of this time.”
Mr Johnson’s success in getting MPs to back an election – on his fourth try – came in the form of a short bill to amend the 2011 Fixed-term Parliaments Act.
This lowered the threshold of support needed to hold an election earlier than 5 May 2022 from two-thirds of all 650 MPs to a simple Commons majority.
Prior to the vote, Mr Johnson restored the Conservative whip to 10 of the MPs he had effectively expelled from the party last month for voting against his Brexit strategy.
They are former ministers Alistair Burt, Caroline Nokes, Greg Clark, Ed Vaizey, Margot James, Richard Benyon, Stephen Hammond, Richard Harrington, Steve Brine and Sir Nicholas Soames.
This group will be allowed to stand at the election as Conservatives.
A total of 21 MPs had the Tory whip withdrawn by Mr Johnson, meaning 11 – including ex-chancellor Philip Hammond – are still classed as independents.
Mr Johnson will use the general election to ask voters to support his Brexit deal and return a Conservative majority who can ratify it in UK law.
Labour leader Jeremy Corbyn will instead argue voters should allow him to renegotiate a different Brexit deal with the EU, which he will then put to a referendum vote next year.
The Liberal Democrats have vowed, if they win a Commons majority at the election, they will cancel Brexit.
Meanwhile, the SNP will use the election to push their campaign for independence, while the Brexit Party – who currently have no Commons seats – are set to argue for a “clean break” from the EU via a no-deal Brexit.
Politics reporter @GregHeffer Voters are set to head to the polls on 12 December after MPs supported a pre-Christmas general election. The House of Commons voted by an overwhelming majority of 438 to 20 in favour of an election in little more than six weeks’ time.