Boris Johnson is set to secure a 12 December general election after MPs passed a bill to trigger a pre-Christmas poll.
The prime minister had earlier avoided a potential obstacle when the House of Commons deputy speaker, Lindsay Hoyle, refused to allow votes on Labour amendments calling for the vote to be given to EU citizens and 16- and 17-year olds.
The government had said it would pull the bill if either of the amendments passed.
MPs also voted by 315 to 295 to reject an amendment tabled by Jeremy Corbyn to change the date of the election to 9 December, three days earlier than ministers wanted.

Boris Johnson announces government will push legislation to allow general election in December
Plan announced after prime minister falls short for third time of two-thirds majority required
Limited edition Brexit 50p coins to be shredded and melted down after Boris Johnson misses 31 October deadline
Treasury to produce new coins that will enter circulation 'after we have left'
Boris Johnson's pre-Christmas election moves closer as Lib Dems set to compromise over date
Chuka Umunna rules out 12 December poll but drops insistence on 9 December – hinting that a day in between would be acceptable