Boris Johnson saw off a rebellion by 34 Tory MPs opposed to the move, with the support of Labour.
The government won the vote by 516 to 39, a majority of 477.
The prime minister told MPs a second lockdown was needed to "contain the surge" in Covid cases - but rebels warned it would wreck businesses and lives.
The Tory rebels included former leader Sir Iain Duncan Smith and Sir Graham Brady, chairman of the influential 1922 committee of backbenchers.
It comes as the government said a further 492 people had died within 28 days of testing positive for Covid-19. This brings the UK total to 47,742.
The number of deaths reported on Wednesday is the highest daily figure since 19 May, when 500 deaths were reported.
The lockdown in England includes the closure of pubs, gyms and non-essential shops.
It will replace the three tiers of regional restrictions across England for four weeks, until 2 December, when ministers hope to return to a regional approach.
During a three-hour debate, Conservative rebels - and several Labour MPs from the north-west of England - said England's tiered system, brought in two weeks ago, had not been given a chance.
Mr Johnson's predecessor as prime minister, Theresa May, said: "The evidence is, from Liverpool, that cases are falling."
Mrs May was among 19 Conservatives to abstain, including six MPs from Scottish seats, who did not want to take part in the vote as it applied to England only.
She criticised Labour's call for a short, "circuit breaker" lockdown as impractical - but accused Mr Johnson of choosing data to fit his coronavirus policies.
The lockdown decision was "to some extent based on the prediction of 4,000 deaths a day," said the former PM, but that figure had already been proved "wrong".
"For many people it looks as if the figures are chosen to support the policy, rather than the policy being based on the figures.
"We need these proper analyses. We need to know the details behind these models."
Conservative MP Philip Davies, who voted against the government, said: "Nobody voting for this motion tonight is offering to sacrifice their own job in order to pursue this lockdown policy - of course not. They are just expecting millions of others in our country to sacrifice their jobs to pursue this policy.
"I never thought I would see the day a so-called Conservative minister would stand up and urge Parliament to further sacrifice our most basic of freedoms, collapse the economy and destroy jobs - all to pursue a failed strategy."
The government was never going to lose this vote but, at times, it felt as if ministers were losing the argument.
The majority of MPs are reluctantly resigned to lockdown, but critics on both sides of the House have dominated the debate.
The seniority of the sceptics highlighted the disquiet - especially amongst Boris Johnson's backbenchers.
Theresa May expressed concerns, but Sir Iain Duncan Smith went for full-throated opposition - describing a "circuit breaker" lockdown as a "business breaker".
And some Labour MPs broke ranks with their own leader's instruction to back the measures.
MPs will get a subsequent vote on whatever measures will replace lockdown before 2 December.
Conservative MP Nusrat Ghani said she would support the government for now, but was putting ministers "on 28 days' notice".
Many more apparently loyal MPs have their own red lines - so today's rebellion will represent only the tip of an iceberg of unease.
Four DUP MPs and former Tory independent Julian Lewis also voted against the government, as did two Tory MPs who acted as tellers. No Labour MPs voted against the government, but nine of them abstained.
The Scottish National Party did not take part in the vote. In Scotland, a new five-tier restrictions system came into force on Monday. Wales is in a "firebreak" lockdown until 9 November, and Northern Ireland is also under tighter restrictions.
Mr Johnson said a second lockdown was "not something any of us wanted to do," but he added: "I am not prepared to take the risk with the lives of British people."
"While it pains me to call for such restrictions on lives, liberty and business I have no doubt that these restrictions represent the best and safest path for our country," he told MPs.
Health Secretary Matt Hancock said that in ordinary times the measures taking effect on Thursday would be "unimaginable, but these are not ordinary times".
Explaining his party's decision to back the government, Labour Leader Sir Keir Starmer said: "Nobody votes for the regulations today with anything other than a heavy heart, on both sides."
He urged the prime minister to use the four-week lockdown to come up with "something better" than the three tier system, as it was "not working".
Earlier at Prime Minister's Questions, Sir Keir accused Mr Johnson of "ignoring" the advice of government scientists who called for a brief "circuit breaker" lockdown in September.
"Does the prime minister understand the human cost of his delay in acting?" he asked Mr Johnson.
The PM said it was "always right to pursue a local and a regional approach," adding that it was "showing signs of working".
Mr Johnson insisted the lockdown will expire automatically on 2 December and he hopes "very much" to "get this country going again" in the run up to Christmas.
"But that depends on us all doing our bit now to make sure that we get the R [rate] down."
Boris Johnson: 'These measures will expire on 2 December'
It's far better to buy a wonderful company at a fair price than a fair company at a wonderful price.