British Prime Minister Boris Johnson's snap general election plan has been roundly rejected after his bid to keep a no-deal Brexit on the table suffered a major blow.

He had called for a poll to be held on 15 October after legislation designed to prevent the UK crashing out of the EU on 31 October cleared the House of Commons.

But Labour and other opposition MPs refused to back the bid - which needed a two-thirds majority in the commons - while the risk of a no-deal remained.

The government failed to secure the support of two-thirds of MPs, with the commons voting 298 to 55 - 136 short of the number needed.

In a series of setbacks, MPs approved a backbench bill earlier in the evening to delay Brexit in order to prevent a no-deal withdrawal from the EU on 31 October.

It cleared the commons when it passed its third reading by 327 votes to 299, majority 28, and should now progress to the Lords.

Following a moment of confusion, an amendment seeking to give MPs a vote on Theresa May's final Brexit deal was also passed - potentially paving the way for it to be put before the commons for the first time.

Labour MP Stephen Kinnock's amendment was approved after tellers for those voting against the amendment were not put forward during voting.

A government source said it was a "free vote so no one put tellers in".

Mrs May's final offer, the Withdrawal Agreement Bill, emerged from cross-party talks earlier this year, but was never put before parliament because she was ousted as Tory leader.

Tory former Cabinet minister Dame Caroline Spelman became the latest MP to rebel against the government, when she backed the bill at its second and third reading, but will not have the party whip withdrawn.

Labour leader Jeremy Corbyn said the bill must be passed through the Lords and have received Royal Assent before he would entertain the thought of heading to the polls.

He said: "Let the bill pass and have Royal Assent and then we can have a general election."

In a tweet, Mr Corbyn said when a no-deal Brexit is "off the table, once and for all, we should go back to the people in a public vote or a General Election to decide our country's future".

A Downing Street spokesman earlier said the PM would not resign to force a general election if the government lost the commons vote, telling a Westminster briefing: "He's not going to step down. He wants an election.

"We will find a way to deliver on what the British people want, which is to deliver Brexit by October 31.

"If the PM cannot get the Bill through parliament because parliament is determined to wreck the negotiations, the only other option then is a general election."

Read More:

Live updates: Brexit in Westminster 
Johnson to table motion to trigger general election after Commons defeat
Latest Brexit stories 

Following the motion on an early election, Mr Johnson accused Mr Corbyn of wanting to "stop the people from voting".

He said: "I think there is only one solution, I think he has become the first, to my knowledge, the first leader of the opposition in the democratic history of our country to refuse the invitation to an election.

"And I can only speculate as to the reasons behind his hesitation. The obvious conclusion, I'm afraid, is that he does not think he will win.

"I urge his colleagues to reflect on what I think is the sustainability of his position overnight and in the course of the next few days."

Mr Johnson's Conservative government lost its working majority in parliament last night after one Tory MP crossed the floor to join the Liberal Democrats.

The Conservative party later expelled 21 MPs for working against the government.

Additional Reporting Reuters, AFP