The government won the vote by 521 to 73.
The EU Future Relationship Bill, which puts the deal into legislation, will now be rushed through parliament in one day, with the Queen due to grant royal assent late on Wednesday night.
Trumpeting his deal, which governs trade worth £660bn a year to both sides, Johnson said it was “one of the biggest free trade agreements in the world”.
He said: “Having taken back control of our money, our borders, our laws and our waters by leaving the European Union on January 31, we now seize this moment to forge a fantastic new relationship with our European neighbours based on free trade and friendly co-operation.”
Britain’s trading relationship with the EU is now set to change radically on January 1, when the country will officially leave the single market and customs union.
Eurosceptics, such as veteran Conservative Bill Cash, claimed the PM had ended the Brexit saga and “saved our democracy”.
“Our prime minister, a great classicist, like his hero Pericles, is the first citizen of his country, and like him has saved our democracy. Like Alexander the Great, Boris has cut the Gordian Knot,” said Cash.
“Churchill and Margaret Thatcher would have been deeply proud of his achievements, and so are we.”
Starmer, meanwhile, warned Johnson must improve on the “thin deal” as he criticised failures to secure trade terms for the services industry, which makes up around 80% of the UK economy.
“We have only one day before the end of the transition period and it’s the only deal that we have,” he said.
“It’s a basis to build on in the years to come.”
The Labour leader called “the lack of ambition” on services “striking” but said the only alternative at this late stage was no-deal.
The deal “will make it harder to sell services into the EU”, he said, adding: “So we’re left to wonder: either the prime minister did not try to get a strong deal to protect our service economy, or he tried and failed. Which is it?”
The debate also reopened old Brexit wounds, including for former PM May, who blasted Starmer, Labour’s former Brexit spokesperson, for failing to back the deal she negotiated in 2016.
“He said he wanted a better deal,” she said. “He had the opportunity in early 2019 when there was the opportunity of a better deal on the table and he voted against it, so I will take no lectures from the leader of the opposition on this deal.”
But May also said she was “disappointed” about the deal’s approach to the “key area” of financial services.
Saying she had pledged in 2018 to work to get a “truly ground-breaking” deal for this sector, she told Johnson: “Sadly, it has not been achieved.”
SNP Westminster leader Ian Blackford, whose party opposed the deal, said the agreement was “an act of economic vandalism”.
It comes as Nicola Sturgeon presses for a second Scottish independence referendum in the wake of 62% voting “remain” north of the border in 2016.
“Now that we see the scale of the bad Brexit deal the question before the Scottish people is clear – which union does Scotland wish to be part of?” said Blackford. “Which future will we choose? This broken Brexit Britain or the European Union?”