Senior Conservatives have signalled they are not prepared to support a no-deal Brexit as they inflicted a defeat on the government in Parliament.
MPs backed an amendment to the Finance Bill, which would limit the scope for tax changes following a no deal unless authorised by MPs, by 303 to 296 votes.
Twenty Tories rebelled and, while its practical effect will be limited, Labour said it was an “important step”.
But Brexiteers said the UK would leave the EU on 29 March, come what may.
Before the vote, No 10 said a defeat would be “inconvenient rather than significant”, with experts pointing out there were other mechanisms available to government to raise money.
Former cabinet ministers Michael Fallon, Justine Greening, Dominic Grieve, Ken Clarke and Sir Oliver Letwinwere among the 20 Conservative MPs who defied the government by backing a cross-party amendment tabled by Yvette Cooper.
Sir Oliver, a government loyalist who has never previously rebelled over Brexit, said he wanted to send a message to opponents of Theresa May’s Brexit deal, to be voted on next week.
“I want to make it abundantly clear to my honourable friends who are voting against the prime minister’s deal, which I shall be supporting, that the majority in this House will not allow a no-deal exit to occur on the 29 March.
“I will continue to do so right up to the end of March, in the hope that we can put pay to this disastrous proposal.”
Mr Corbyn hailed the development as an “important step” towards preventing a no-deal Brexit.
The Labour leader tweeted: “It shows that there is no majority in Parliament, the cabinet or the country for crashing out of the EU without an agreement.”
By Vicki Young, BBC chief political correspondent
Downing Street was saying earlier that this would not be catastrophic if it was voted through, as it was a minor issue when it came to tax powers if there was a no-deal scenario.
What this is about is Parliament saying to the government “we can control this process” if it comes to it.
Opponents of a no-deal Brexit will say this shows they have the numbers to stop the government going down that path, although that will be argued against by the Brexiteers.
It also shows the difficulty that Theresa May has when it comes to legislation because she does not have a working majority.
Her arrangement with the DUP meant she was supposed to have a majority but if there are enough Conservative MPs willing to go against their own government, that disappears.
The prime minister could try to turn this around and say to the Brexiteers “you are jeopardising Brexit from happening at all” because there is not a majority for a no-deal Brexit in the Commons.
If you are trying to look for a bright side for the government, that is probably it.
The setback, the government’s sixth Commons defeat since July 2017, comes as MPs prepare to resume debate on Wednesday on the PM’s proposed Brexit deal, culminating in a vote next week.
It also comes at the end of a day in which senior ministers spoke out about the risks of exiting the EU without any agreement on the terms of withdrawal.
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”.
How have MPs reacted?
The Commons amendment is designed to make a no-deal exit harder by limiting the Treasury’s ability to raise certain taxes after the UK left, 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.
Ms Cooper said although it would not block a no-deal exit, it “set a precedent” and showed MPs would not allow the UK “to just drift into it by accident”.
Lib Dem leader Sir Vince Cable said the vote was largely symbolic from an administrative point of view, as the powers being taken away from ministers were limited.
But he said it sent a potent message that Tory MPs would “revolt” if the government changed its policy and embraced no deal as its desired outcome.
Treasury minister Robert Jenrick said the government “neither wanted nor expected” a no-deal exit but defended “prudent preparation to provide our taxpayers with the certainty they deserve” and said all the defeat would do would be to make the UK “somewhat less prepared”.
Many Tory Brexiteers believe a no-deal exit, which would see the UK trade with the EU on the basis of World Trade Organization rules, is nothing to be feared.
Former Tory leader Iain Duncan Smith said “scare stories” that it would lead to planes being grounded and ports being gridlocked must be put to bed.
Tuesday’s vote, he told Sky News, did not alter the fact that MPs had already passed legislation last year specifying that the UK would leave on 29 March.
“We have legislated to leave the EU, with or without a deal. That is what people voted for.”
Can Parliament block a no-deal exit?
By the BBC’s Reality Check correspondent Chris Morris
There’s a big problem facing members of Parliament who want to avoid a no-deal Brexit.
They can’t just show there is a majority in the House of Commons against no deal – they need to prove there is a majority in favour of an alternative outcome.
That’s because leaving the EU – with or without a deal – is currently the default.
What we’re likely to see over the next couple of months is what some are calling “guerrilla warfare by amendment” in the House of Commons.
The trade bill is likely to be another target – it would be needed in the event of no deal, to try to keep the UK trading on the same terms as it has now with the rest of the world.
The idea behind all this parliamentary manoeuvring is to demonstrate that there is a clear majority in the House of Commons against no deal.
But none of it, taken in isolation, will prevent the Article 50 clock ticking away until it stops at the end of March.