The UK is set to head to the polls on December 12 after MPs backed the government’s proposed legislation at its third reading. MPs voted in favour by 438 to 20, a majority of 418.
It comes after the bill passed its second reading without the need for a formal vote as it had the clear support of the main parties.
However, the short bill still needs to pass through the House of Lords before it is official.
MPs earlier rejected Labour’s amendment to move the date to December 9 by 315 votes to 295, a majority of 20.
The next election was not scheduled to take place until May 2022.
The prime minister said he wants an election to secure a majority and a “new mandate” from voters to get his Brexit deal through the Commons and take the UK out of the EU by January 31.