EU leaders have agreed in principle to extend Brexit until 31 January 2020 – meaning the UK will not leave as planned on Thursday.
EU Council President Donald Tusk said it was a “flextension” – meaning the UK could leave before the deadline if a deal was approved by Parliament.
It comes as MPs prepare to vote on proposals by Boris Johnson for an early general election on 12 December.
The SNP and Lib Dems have also proposed an election on 9 December.
The government has not ruled out getting behind that proposed date, if it fails to get its preferred date through the Commons later.
The UK was due to leave the EU on Thursday, but Mr Johnson was required to request an extension after Parliament failed to agree a Brexit deal.
The prime minister had repeatedly said the UK would leave on 31 October deadline with or without a deal, but the law – known as the Benn Act – requires him to accept the EU’s extension offer.
The president of the European Parliament, David Sassoli, said the extension was “positive”, and “gives time for the UK to make clear what it wants”.
Downing Street said Mr Johnson had not yet seen the EU’s response to his request for a Brexit delay.
“The PM will respond once he has seen the detail,” his official spokesman said. “His view has not changed. Parliament should not have put the UK in this position and we should be leaving on 31 October.
“The PM secured a great new deal despite being told this impossible but Parliament has chosen more dither and delay.”
Mr Tusk will now seek the UK’s formal agreement to the decision, before formalising the extension through a written procedure among the 27 other EU nations.
An EU official said they hoped for the process to be concluded by Tuesday or Wednesday.
MPs are due to vote on the prime minister’s election call after 18:00 GMT.
Mr Johnson said if Parliament agreed to an election on 12 December, he would restart efforts to get his Withdrawal Agreement Bill – the legislation enacting the Brexit deal he struck with Brussels – into law.
The bill passed its first hurdle last week after MPs backed it at the second reading by a majority of 30.
But minutes later they voted against a timetable that would see it pass through Parliament in just three days, so the PM “paused” its progress.
Labour has repeatedly said it will not back an early general election until a no-deal Brexit is taken off the table.
The party was predicted to abstain in Monday’s vote, effectively killing off the government’s plans.
Votes for a vote
The SNP also said it would block the government’s election attempt.
But it has broken with the Labour position and joined forces with the Liberal Democrats to push for an election on 9 December, provided there is an extension.
The SNP and Lib Dems have proposed a bill that would tweak the Fixed-term Parliaments Act 2011 – the law which sets the time-frame for elections.
If passed, it would enable an election to take place with only a majority of one, rather than two-thirds of MPs.
The SNP’s Westminster leader, Ian Blackford, said they would then fight an election “on the basis” of stopping Brexit.
He welcomed the extension from the EU, telling the BBC: “There is a responsibility on all of us to make sure we use that time to get out of the Brexit mess we are in and to get out of the impasse everybody is fed up of being in.”
Lib Dem MP Chuka Umunna claimed the plan would also prevent the prime minister “ramming through” his Brexit bill, which the Lib Dems oppose, and changing the date of an election until after the UK had left the EU.
“The only way you can stop Brexit is through a democratic mandate of the people,” Mr Umunna told BBC News.
“We have tried to secure a People’s Vote [or further referendum] 17 times in Parliament… but we have simply not had the support. So, our best bet… is getting a new Parliament with a different arithmetic.”
His party leader, Jo Swinson, added: “We will keep fighting for a People’s Vote, but unless Labour wholeheartedly back it then a general election is the only way we can use this extension to stop Brexit.”
But Labour Party Chairman Lavery said accused the Lib Dems of “getting into bed with the no-deal Brexit Conservatives and forgetting their chums” in the People’s Vote campaign.
He tweeted: “Moral of the story: Never trust a Tory and for heaven’s sake never trust the Lib Dems.”
Asked about the Lib Dem/SNP proposal, Education Secretary Gavin Williamson said the government would “always look at every single option”.
But he told BBC Breakfast: “The best way is to vote for the motion tonight. This Parliament is totally broken. Let the people decide the next step forward.”
MPs have already twice rejected a call from the PM to hold a general election.