MPs voted by a majority of one late on Wednesday night to force the prime minister to ask for an extension to the Brexit process, in a bid to avoid any no-deal scenario.
Labour’s Yvette Cooper led the move, which the Commons passed in one day.
The bill then went to the Lords later ahead of getting its approval to become law, but it is the EU which decides whether to grant an extension, with the European Council holding an emergency session next Wednesday at which Theresa May will speak.
Meanwhile talks between Conservative and Labour teams to end the Brexit deadlock continued yesterday, after Theresa May changed tack on Tuesday to get the main opposition party involved in trying to a agree a deal that the Commons would approve, much to the anger of extreme Brexiteers.
Labour is pushing for a customs union, and if both sides cannot reach a consensus, May has pledged to allow MPs to vote on a number of options, including the deal she has negotiated with the EU, which has already been rejected twice by MPs.
Chancellor Philip Hammond has suggested that he expects Brussels to insist on a lengthy delay to Brexit next week and described a public vote to approve any final deal as “a perfectly credible proposition”.
But Health Secretary Matt Hancock told the BBC that he was “very strongly against” a public vote and he would not want to see a long extension to the Brexit process.
The UK has until next Friday to propose a plan to the EU – which must be accepted by the bloc – or it will leave without a deal on that date.