Parliament has approved tax cuts worth over SFr2 billion ($1.54 billion), mainly benefiting middle-class families, as well as homeowners and stock market investors.
The decision, which comes as the Swiss gear up for national elections in October, is opposed by the cantons.
Under Switzerland's complicated three-tier tax system, they stand to lose over SFr500 million in revenue.
The cantons will decide on Friday whether to call a nationwide vote on the issue.
There were even grumblings in the Senate, which is made up of representatives from the cantons, with some parliamentarians denouncing what they called "gifts in an election year".
Bonus for families
Families are the biggest beneficiaries, pocketing tax breaks totalling SFr1.2 billion. These include deductions for children and childcare.
A single-income family with two children and a gross income of SFr60,000 would no longer pay federal tax; while a family earning SFr100,000 would pay just SFr371 instead of SFr901.
Higher-income families will enjoy even bigger savings: those earning SFr200,000 will see their tax bill slashed by SFr3,614.
The package also includes a SFr480 million break for homeowners, and a reduction in stamp duty worth SFr310 million.
The tax breaks are SFr280 million more than the government had asked for.
Finance Minister Kaspar Villiger, who supported tax cuts for families and reducing stamp duty, complained that homeowners were getting too good a deal.
He said the cuts for property owners were unfair and too costly.
Homeowners had until now been able to deduct from their income the so-called "rental value" of their house or apartment for tax purposes.
Under a new system, they will be able to make bigger deductions on their tax form.
Representatives from the rightwing People's Party said that homeowners were getting a substantially better deal than those renting properties.
Others saw the increased deductions as part of pre-electoral manoeuvring.
Social Democrat parliamentarians described the decision to give part of the electorate a large tax break as worthy of a "banana republic".
Under the Swiss constitution, eight of the country's 26 cantons can force a national vote on any change to the law.
Villiger warned that government might not support the modified tax package if it went to the ballot box.
swissinfo with agencies
The tax cuts voted by Parliament are worth a total of SFr2.01 billion.
Families are the biggest beneficiaries, getting tax breaks worth SFr1.2 billion.
Homeowners will also see their tax bill cut by SFr480 million.
Stamp duty is to be slashed by SFr310 million.
The government had planned for tax cuts worth SFr1.73 billion.
Parliament's decision could be threatened by a nationwide vote if the cantons demand a referendum on the issue.