Boris Johnson’s EU trade deal has cleared the British parliament after the government rushed approval through the Commons and Lords in a single day.

Peers gave the European Union (Future Relationship) Bill, ratifying the deal finally agreed on Christmas Eve, an unopposed third reading.

Their approval came just hours after MPs backed the Bill by 521 to 73 at third reading, with just two Tories abstaining but Labour leader Sir Keir Starmer suffered a rebellion.

The Bill will shortly go to the Queen for royal assent, with an announcement expected around midnight.

That will pave the way for the deal to take effect at 11pm on Thursday when the current Brexit transition period, during which the UK has continued to follow EU rules, ends.

Opening the debate in the Commons, the prime minister said the deal would enable the UK to trade and co-operate with the EU on the “closest possible terms” while taking “sovereign control of our laws and our national destiny”.

He said he hoped it would end the “old, desiccated, tired, super-masticated arguments” which have dogged the country for years and enable it to move forwards to a “new and great future”.

“It embodies our vision shared with our European neighbours of a new relationship between Britain and the EU as sovereign equals joined by friendship, commerce, history interests and values while respecting one another’s freedom of action,” he said.

“We are going to open a new chapter in our national story, striking free trade deals around the world and reasserting global Britain as a liberal, outward-looking force for good.”

Labour backed the deal, despite misgivings from some pro-European MPs who said they would be abstaining or voting against.

However, party leader Sir Keir Starmer said that, while the agreement is “thin” with “many flaws”, the alternative is to leave the EU single market and customs union with no agreement, pushing up prices and driving businesses to the wall.

“There’s only one choice today, which is to vote for implementing this deal or to vote for no-deal. Those that vote ‘no’ are voting for no-deal,” he said.

However, the SNP’s Westminster leader, Ian Blackford, condemned the deal as “an act of economic vandalism” and attacked Labour for failing to oppose it.

“I am sad to say that the official opposition has been missing in action.

“I can understand that this might be politically pragmatic for Labour but it definitely isn’t politically principled,” he said.

Two junior shadow ministers, Helen Hayes and Tonia Antoniazzi, announced they were resigning their posts on the Labour front bench as they could not support the agreement.

One Labour MP, Bell Ribeiro-Addy, defied the whips to vote against the agreement while another 36 abstained.

All the other opposition parties opposed the agreement, including the DUP, which backed Brexit but objects to provisions which mean Northern Ireland will still be subject to some EU rules.

But Tory Eurosceptics were jubilant, declaring that the “battle for Brexit” had finally been won.

Veteran Sir Bill Cash said: “Like Alexander the Great, Boris has cut the Gordian Knot.”

Mark Francois, one of the self-styled Spartans who held out against Theresa May’s Brexit withdrawal agreement, said they could now “lower our spears”.

Earlier in the day, European Commission president Ursula von der Leyen and European Council president Charles Michel formally signed the agreement.

Following the brief ceremony in Brussels, the documents were then flown to London by the RAF where Mr Johnson put his name to it.