The overturning of the ban, introduced by the previous government, was approved by lawmakers from the ruling coalition of the conservatives and the far-right.
In an attempt to assuage critics, they also voted to extend the minimum age for smoking to 18 as well as to ban smoking in vehicles if a minor is on board, effective from 2019.
Scrapping the ban was a key campaign pledge last year by the cigarette-loving leader of the far-right Freedom Party (FPÖ), Heinz-Christian Strache, 48.
He argued that a ban would infringe on "freedom of choice" and that he wanted to protect restaurant and bar owners whose businesses he said would be hit by a ban.
The Alpine country is one of Europe's last havens for tobacco lovers and is nicknamed by anti-smoking campaigners the "Ashtray of Europe".
Smokers have to be seated in a separate area in bars and restaurants, but campaigners say that this fails to stop the smoke wafting elsewhere, and the rules are often flouted in any case.
No separate area is necessary in establishments smaller than 50 square metres (540 square feet) if the owner is happy to allow smoking on the premises.
Some 13,000 people die of tobacco-related causes in Austria each year. The country has the third-highest proportion of smokers in the EU (30 percent of those over 15), according to Eurostat.
The ongoing petition in favour of an outright ban threatens to put the FPÖ in a tricky position since another of its campaign pledges was to have more referendums and "direct democracy".
Chancellor Sebastian Kurz, 31, of the People's Party (ÖVP), a non-smoker, says he is bound by his coalition agreement with the FPÖ.
His party was part of the previous coalition with the Social Democrats (SPÖ) that approved the smoking ban in the first place.
"You are acting against science and without a conscience. You are making a deliberate decision today in favour of death," said Matthias Strolz, head of the small opposition party the NEOS.