On another day of high drama in Westminster, the prime minister bought herself yet more time to try and find a way out of the impasse.
But in a sign of the unprecedented divisions in government, eight cabinet ministers voted against requesting an extension to Article 50, the legal process for leaving the EU.
The government narrowly avoided losing control of the Brexit process, as a cross-party bid to allow parliament to decide what to do next was defeated by just two votes.
But almost three years on from the 2016 referendum, how the endgame of Brexit will play out still remains unclear.
Britain had been due to leave the EU on 29 March, but a motion acknowledging that this will now not happen was passed by MPs by 413 votes to 202.
It proposes a one-off delay to Brexit to 30 June in the event that the prime minister manages to get her deal passed ahead of an EU summit next week.
This extension would give the government the necessary time to sort out the required legislation in order to leave in an orderly fashion.
But the motion also warns that if Mrs May makes it an unwelcome hat-trick of parliamentary defeats on her deal, any extension would have to be longer and would involve the UK participating in the European Parliament elections in May.
The PM will have to now formally request an extension from the EU, with the bloc having the final say on whether a delay is approved.
Mrs May’s spokesman said: “The prime minister absolutely wanted and strived for the UK to be leaving the EU on 29 March. Everything she had done since she entered office was intended to deliver that.
“She didn’t want there to be an extension and brought forward the withdrawal agreement twice. Parliament chose to reject that deal and we now have to confront the difficult position that decisions taken by parliament have left us in.”
A European Commission spokesperson said all 27 member states must approve an extension, adding: “It will be for the European Council to consider such a request, giving priority to the need to ensure the functioning of the EU institutions and taking into account the reasons for and duration of a possible extension.”
The deadlock has prompted calls for the Commons to be given a say on the way forward, with a number of amendments to this effect tabled ahead of Thursday’s vote.
Labour leader Jeremy Corbyn said: “After the last few days of government chaos and some defeats, all of us now have the opportunity and the responsibility to work together to find a solution to the crisis facing this country, where the government has so dramatically failed to do so.”
In a bid to placate MPs, Cabinet Office minister David Lidington said that if Mrs May is defeated once more next week, the government will hold two weeks of debate allowing the Commons a chance to establish a majority around an alternative Brexit strategy.
But an amendment from Labour’s Hilary Benn seeking to put MPs in control was agonisingly close to passing, going down by 314 votes to 312.
As well as approving a delay to Brexit, MPs also overwhelmingly rejected an amendment from Independent Group MP Sarah Wollaston calling for a second referendum.
Labour ordered its MPs to abstain, while both campaigns in favour of a so-called “people’s vote” also argued it was not the right time for MPs to push for a fresh public vote.
Mr Corbyn said his party remained in favour of a second referendum.
He told the Commons: “Tonight I reiterate our conviction that a deal can be agreed based on our alternative plan that can command support across the House.
“And I also reiterate our support for a public vote not as political point-scoring but as a realistic option to break the deadlock.”
Remarkably, the breakdown of how MPs voted shows that more Tory MPs voted against asking for a delay to Brexit than voted for it (188-112).
Chief whip Julian Smith, whose job it is to enforce party discipline, abstained.
The cabinet ministers who voted against include International Trade Secretary Liam Fox, Commons Leader Andrea Leadsom, Defence Secretary Gavin Williamson and Brexit Secretary Stephen Barclay – who closed the debate on behalf of the government.
Downing Street sources said this was a “natural consequence” of the PM’s decision to offer a free vote on the issue, meaning MPs could vote how they wished.
Labour divisions on the question of a second referendum were also on show, with 41 MPs defying party orders to cast a vote. Some 24 voted in favour, while 17 voted against.
Ruth Smeeth, an aide to deputy leader Tom Watson, resigned from that role in order to vote against another public vote.
Whip Stephanie Peacock, shadow communities minister Yvonne Fovargue, shadow minister for children and families Emma Lewell-Buck and shadow health minister Justin Madders also voted against and have resigned from the Labour frontbench.