British MPs have voted by a majority of 200 to ban smoking in all licensed premises in England from mid 2007.
The House of Commons rejected alternative proposals for a compromise ban that would have exempted private clubs and pubs which do not serve food.
The bill, on which there was a free vote, will now pass to the upper House of Lords for further debate.
The Labour Party's manifesto promised a partial ban, but MPs were freed from the shackles of the party whip when it became clear the Government faced near-certain defeat.
Pressure from anti-smoking and health groups was amplified by an influential Labour-dominated committee, which said total prohibition was the only effective means of protecting public health.
British Health Secretary, Patricia Hewitt, said the Bill would ban smoking in virtually every enclosed public place and workplace in England by next Summer. 384 MPs voted for the ban, while 184 voted against.