MPs have backed measures designed to thwart preparations for a no-deal Brexit, by defeating the government in the House of Commons.
They backed an amendment to the Finance Bill, which would limit spending on no-deal preparations unless authorised by Parliament, by 303 to 296 votes.
Jeremy Corbyn urged Theresa May to now rule out a no-deal “once and for all”.
Treasury minister Robert Jenrick said the “simple truth” remained that the UK would leave the EU on 29 March.
All the government defeat would do, he told MPs, would be to make the UK “somewhat less prepared”.
But Mr Corbyn hailed the development as an “important step” to prevent a no-deal Brexit.
He tweeted: “It shows that there is no majority in Parliament, the Cabinet or the country for crashing out of the EU without an agreement.”
The setback for the government came after a day in which senior ministers spoke out about the risks of exiting the EU without any form of withdrawal agreement.
Work and Pensions Secretary Amber Rudd told the cabinet that the public would take a “dim view” of government if it settled for a disorderly Brexit and suggested it would make the UK less safe.
And Business Secretary Greg Clark said such an outcome “could not be contemplated”.
The Commons amendment, tabled by Labour’s Yvette Cooper, is designed to limit the Treasury’s ability to spend money on no-deal preparations, without the explicit consent of Parliament.
The technical changes to a crucial piece of government legislation were intended to demonstrate to ministers the strength of opposition to a no-deal Brexit in the Commons.
Tory MPs to speak in favour of the motion included ex-ministers Nick Boles and Sir Oliver Letwin.