The prime minister saw victory turn to defeat in a dramatic 15 minutes as MPs backed the Withdrawal Agreement Bill in principle but threw out his attempt to ram it through in just three days without proper scrutiny.
Moments later, Mr Johnson told MPs he would “pause” the bill and that the ball was now in the EU’s court to decide whether to extend Article 50 to avert a crash-out Brexit on 31 October.
“We now face further uncertainty and the EU must now make up their minds over how to answer parliament’s request for a delay,” he said.
But, with Brussels reluctant to get involved until the UK has set out a clear path forward, it threatened a fresh impasse, despite the bill receiving a second reading by a bigger-than-expected 30 votes.
Earlier, the prime minister had threatened to abandon the bill altogether and force a pre-Christmas general election if defeated on the controversial timetable – which he then was, by 14 votes.
However, he did not repeat the threat after losing the vote and appeared more likely to agree to Jeremy Corbyn’s offer of talks to agree a compromise timetable in order to revive the bill.
If he does, pro-EU MPs will pounce with a blizzard of amendments including to keep the UK in a customs union and avert the continuing risk of a no-deal Brexit at the end of 2020, when the transition period ends
In the meantime, the Queen’s Speech debate will be brought back, threatening Mr Johnson with a landmark defeat on his plans for future legislation on Thursday.
Significantly, he appeared to abandon his threats of a Halloween crash-out after bowing to the law with his weekend letter seeking a delay to extend the Benn Act.
Instead, he said: “One way or another we will leave the EU with this deal to which this house has just given its assent.”
A European Commission spokeswoman made clear it would await further developments in London, while continuing to consider the existing request for a Brexit delay until 31 January.
She said the commission “takes note of tonight’s result and expects the UK government to inform us about the next steps”.
The prime minister’s spokesman was unable to say whether he would ask for a shorter delay, in a round of talks with EU leaders, or accept the three months requested under the Benn Act.
Earlier, he had hinted a delay of a few weeks might be acceptable – despite the embarrassment of breaking his pledge to leave on 31 October – but a few months would not and would trigger an election instead.
However, it remains unclear whether the prime minister could force an election if he tried, after Labour and other opposition parties blocked it last month.
“MPs have stood up to Boris Johnson’s attempt to bully them into ramming his Brexit law through parliament with the minimum of scrutiny and no one should be taken in by the prime minister’s bluster that the vote to pass the bill at second reading means he has MPs’ approval to force this on the people.
“Instead, parliament has rightly said it needs the time to give it proper scrutiny and to table amendments which could make it less damaging to our country.”
Earlier, MPs voted by 329 to 299, a majority of 30, for the bill to clear its first hurdle, with the support of 19 Labour MPs – more than the 10-12 expected.
But they then voted by 322 to 308, a majority 14, against the so-called programme motion, after protesting there would be next-to-no time for proper scrutiny.
No current Tory MPs rebelled but nine recently kicked out of the party for helping to block a no-deal Brexit did – Guto Bebb, Ken Clarke, Justine Greening, Dominic Grieve, Philip Hammond, Richard Harrington, Anne Milton, Antoinette Sandbach and Rory Stewart.
The respected Institute for Government backed their protest, saying: “MPs are being presented a timetable which increases the risk of ineffective legislation.”
And one Labour MP, Karl Turner, said of the plan for just three days of debate that he and his wife “spent longer choosing a sofa than we have to debate this incredibly important bill”.