MPs have voted by huge margins to ban smoking from all pubs and private members' clubs in England.
Health Secretary Patricia Hewitt said the change, expected to take effect in summer 2007, would "save thousands of people's lives".
Ministers gave a free vote amid fears Labour MPs could rebel against plans to exempt clubs and pubs not serving food.
The Commons decided by a margin of 328 to ban smoking from all pubs. It then voted by 200 to extend this to clubs.
The Cabinet had been split on how far restrictions - set out in the Health Bill - should go, with Conservatives calling government policy a "shambles".
'Historic day''
Smoking is already to be banned in pubs and clubs in Scotland and Northern Ireland.
The Health Bill gives the Welsh Assembly the right to decide for itself whether to implement a ban it has already twice approved in principle.
This is really going to affect generations to come and make the nation a lot healthier
Elspeth Lee, Cancer Research UK
Ms Hewitt, who voted for a total ban for England, told the BBC: "I'm absolutely delighted. This is really a historic day for public health."
She added: "This is going to save thousands of people's lives."
Prime Minister Tony Blair, Chancellor Gordon Brown and Home Secretary Charles Clarke all voted for a blanket ban.
But Culture Secretary Tessa Jowell, Defence Secretary John Reid and Education Secretary Ruth Kelly opposed it.
Dr Vivienne Nathanson, of the British Medical Association, said she was "delighted" by Tuesday's Commons results, adding: "Every day around 30 people die in the UK as a result of second-hand smoke.
"Today's vote will mean the beginning of the end to these frightening statistics."
'Illiberal'
Elspeth Lee, of Cancer Research UK, said: "This is really going to affect generations to come and make the nation a lot healthier."
However, Simon Clark, director of smoking support group Forest, said: "This is a double whammy and an unnecessary and illiberal piece of legislation that denies freedom of choice to millions of people.
"The Government should educate people about the health risks of smoking but politicians have no right to force people to quit by making it more difficult for people to consume a legal product."
About one third of people who smoke more than 20 cigarettes a day will have their first within five minutes of waking
Earlier, health minister Caroline Flint said fines for failing to stop people smoking in restricted areas would go up by more than ten times from £200 to £2,500.
She said: "I am confident that these increased fine levels will result in better compliance with smoke-free legislation, which of course, will make enforcement easier."
The Cabinet originally proposed prohibiting smoking only in pubs serving food, in line with Labour's election manifesto.
But a free vote was offered after many Labour MPs, fearing a partial ban could increase health inequalities among customers and staff, threatened to rebel.
Ministers came up with three choices: a total ban; exempting private clubs; or exempting clubs and pubs not serving food.
Many MPs opposed a smoking ban on civil liberties grounds.
'Good news'
The government predicts an estimated 600,000 people will give up smoking as a result of the law change.
Liberal Democrat Steve Webb said: "This legislation is good news for tens of thousands of bar staff up and down the country.
"The key issue has always been the health and safety of people who work in public places."
Conservative MPs were offered a free vote on the issue.
Tory leader David Cameron missed the vote following the birth of his third child, a son, earlier on Tuesday.
In a recent report, the Commons health select committee said a total ban was the "only effective means" of protecting public health.
The Health Bill also contains measures relating to the control of MRSA, pharmaceutical provision in hospitals, the prevention of fraud in the NHS and the establishment of a new commission to appoint senior NHS managers and trustees.
Health Secretary Patricia Hewitt said the change, expected to take effect in summer 2007, would "save thousands of people's lives".
Ministers gave a free vote amid fears Labour MPs could rebel against plans to exempt clubs and pubs not serving food.
The Commons decided by a margin of 328 to ban smoking from all pubs. It then voted by 200 to extend this to clubs.
The Cabinet had been split on how far restrictions - set out in the Health Bill - should go, with Conservatives calling government policy a "shambles".
'Historic day''
Smoking is already to be banned in pubs and clubs in Scotland and Northern Ireland.
The Health Bill gives the Welsh Assembly the right to decide for itself whether to implement a ban it has already twice approved in principle.
This is really going to affect generations to come and make the nation a lot healthier
Elspeth Lee, Cancer Research UK
Ms Hewitt, who voted for a total ban for England, told the BBC: "I'm absolutely delighted. This is really a historic day for public health."
She added: "This is going to save thousands of people's lives."
Prime Minister Tony Blair, Chancellor Gordon Brown and Home Secretary Charles Clarke all voted for a blanket ban.
But Culture Secretary Tessa Jowell, Defence Secretary John Reid and Education Secretary Ruth Kelly opposed it.
Dr Vivienne Nathanson, of the British Medical Association, said she was "delighted" by Tuesday's Commons results, adding: "Every day around 30 people die in the UK as a result of second-hand smoke.
"Today's vote will mean the beginning of the end to these frightening statistics."
'Illiberal'
Elspeth Lee, of Cancer Research UK, said: "This is really going to affect generations to come and make the nation a lot healthier."
However, Simon Clark, director of smoking support group Forest, said: "This is a double whammy and an unnecessary and illiberal piece of legislation that denies freedom of choice to millions of people.
"The Government should educate people about the health risks of smoking but politicians have no right to force people to quit by making it more difficult for people to consume a legal product."
About one third of people who smoke more than 20 cigarettes a day will have their first within five minutes of waking
Earlier, health minister Caroline Flint said fines for failing to stop people smoking in restricted areas would go up by more than ten times from £200 to £2,500.
She said: "I am confident that these increased fine levels will result in better compliance with smoke-free legislation, which of course, will make enforcement easier."
The Cabinet originally proposed prohibiting smoking only in pubs serving food, in line with Labour's election manifesto.
But a free vote was offered after many Labour MPs, fearing a partial ban could increase health inequalities among customers and staff, threatened to rebel.
Ministers came up with three choices: a total ban; exempting private clubs; or exempting clubs and pubs not serving food.
Many MPs opposed a smoking ban on civil liberties grounds.
'Good news'
The government predicts an estimated 600,000 people will give up smoking as a result of the law change.
Liberal Democrat Steve Webb said: "This legislation is good news for tens of thousands of bar staff up and down the country.
"The key issue has always been the health and safety of people who work in public places."
Conservative MPs were offered a free vote on the issue.
Tory leader David Cameron missed the vote following the birth of his third child, a son, earlier on Tuesday.
In a recent report, the Commons health select committee said a total ban was the "only effective means" of protecting public health.
The Health Bill also contains measures relating to the control of MRSA, pharmaceutical provision in hospitals, the prevention of fraud in the NHS and the establishment of a new commission to appoint senior NHS managers and trustees.
I'm all for it. As a non-smoker, I don't want to have to inhale other peoples deadly cancer mist while I'm standing around in bars.