There will be an early general election on December 12, the House of Commons has agreed.

Parliament voted to dissolve itself next week in order to hold the first December election in the UK for 96 years.

MPs backed Boris Johnson's Bill for a snap poll by 438 votes to 20 - a majority of 418 - with hundreds of MPs abstaining, including the SNP.

The Commons also rejected an amendment tabled by Labour leader Jeremy Corbyn to change the election date to December 9, by 295 MPs to 325, a majority of 20 against.

Opposition parties had wanted to bring forward polling day to cut off any possibility the Prime Minister could try to ram through his Brexit deal before parliament is dissolved.

However, Downing Street warned it was not "logistically possible", while Downing Street accused the opposition of a deliberate attempt to scupper the whole election.

Commons deputy speaker Lindsay Hoyle earlier rejected opposition party amendments to the election Bill to extend the franchise to 16 and 17-year-olds and EU nationals, as is the case in council, Holyrood and European elections.

The likelihood of a festive trip to the polls rose on Tuesday morning when the Labour leader joined the SNP, the Liberal Democrats and the Conservatives in backing a December vote.

It comes as 10 Tory rebels expelled over Brexit in September were welcomed back into the party.

This week, the EU granted a three-month delay to the UK's departure from the EU, with the option of leaving sooner if MPs can ratify a Brexit deal.

Outgoing European Council president Donald Tusk has urged Britain to "make the best use of this time".

The last general election, which was also called early, was in 2017 and saw Theresa May lose her Commons majority.