Parliament has approved a partial amnesty for tax dodgers despite opposition by the Greens and the centre-left.
Also on Wednesday, the House of Representatives rejected a proposal to scrap a flat-rate tax for rich foreigners.
Finance Minister Hans-Rudolf Merz condemned tax evasion during the debate in the House.
But he said incentives were necessary for the state to get back the funds it is rightfully owed.
"There is no ideal solution from an ethical and fiscal point of view. I know it is an ugly chapter but we have to allow tax dodgers a pardon from time to time," he said.
Supporters argued the move would allow the state to recover revenue otherwise lost, while opponents said an amnesty sent out a wrong signal.
A previous tax amnesty in 1969 resulted in a windfall of SFr11.5 billion ($10 billion), according to supporters.
The Green Party unsuccessfully tried to block the debate saying the proposal went against the idea of fair taxation.
"We are against it because an amnesty is like saying: it pays off to dodge taxes because one day there will be an amnesty," warned Ruth Genner.
Under the proposal, which is still to go back to the Senate to iron out details, citizens will not be fined the first time they report a tax evasion.
People who fail to pay inheritance tax can hope for a milder penalty under the new amnesty.
Wednesday's decision falls short of a general tax amnesty, which the government rejected. General amnesties were introduced in 1940 and 1945.
The Neue Zürcher Zeitung newspaper welcomed the decision in an editorial.
"An amnesty is not a must, but it makes sense to allow cheats and heirs of tax dodgers to find a way of complying with the law."
In another move, the House on Wednesday came out in favour of maintaining a flat rate for foreigners.
The centre-left Social Democrats argued the rate should be increased four-fold to 20 times the amount estimated for property rental. They said such a taxation system went against the constitution.
However, a majority in the house said such an increase would prompt many rich foreigners to leave the country.
swissinfo with agencies
Individuals resident in Switzerland pay income tax at federal, cantonal and local level. Each of the country's 26 cantons sets its own rates so the tax burden varies according to where the taxpayer lives.
Earlier this month canton Obwalden decided to introduce a flat income tax – fueling competition among other cantons.
In February Swiss voters will have the final say on a parliamentary proposal to reduce corporate taxes.
Switzerland is locked in a dispute with the European Union over taxes on company profits generated in EU countries.