Members of Theresa May's cabinet have defied party orders and refused to vote against a motion to prevent the UK leaving the European Union without a withdrawal agreement.

During a dramatic evening of Commons votes, four cabinet ministers defied the Conservative whip and abstained on a crucial motion, placing themselves at risk of being sacked.

They were joined by seven junior ministers, as Ms May suffered another two humiliating Commons defeats.

One member of the government, work and pensions minister Sarah Newton, went a step further and voted in favour of the motion that Tory MPs had been ordered to oppose. She resigned her role immediately afterwards.

The government had tabled a motion ruling out leaving the EU without a deal on 29 March but not necessarily at a later date.

But backbench MPs intervened and put forward an amendment saying no deal should be taken off the table entirely. Despite being opposed by the government, the proposal was narrowly passed by the Commons, by 312 votes to 308.

Ms May was then forced to order her own MPs to vote against the newly amended text - in effect, opposing her own motion.

That was not enough to stop it passing, however, as MPs divided 321 to 278 in favour of the motion.

The defeat was a result of 17 Tory MP voting against the government and 11 ministers refusing to vote at all in order to avoid having to support keeping the option of no deal on the table.

These are the ministers who abstained:

Cabinet ministers

Greg Clark - Business secretary

David Gauke - Justice secretary

David Mundell - Scottish secretary

Amber Rudd - Work and pensions secretary

Other ministers

Robert Buckland - Solicitor general

Alistair Burt - Foreign Office minister

Tobias Ellwood - Defence minister

Richard Harrington - Business minister

Margot James - Culture minister

Anne Milton - Education minister

Claire Perry - Business minister