Following warnings from judicial authorities, Madrid watered down measures from an earlier bill, but maintained tough penalties for unauthorised demos if they are deemed a security threat.
Critics have branded the reform repressive. But Interior Minister Jorge Fernandez Diaz insisted it would "guarantee greater security for citizens with greater legal security... and protect the rights and freedoms of citizens".
He spoke at a news conference after the conservative government approved the latest draft at a cabinet meeting today. It now heads to parliament where the ruling Popular Party holds a strong majority.
It sets a fine of up to 30,000 euros for unauthorised demonstrations near the national or regional parliaments if they are deemed to pose a serious security risk.
Spain's recent years of recession and tough economic reforms have sparked mass street demonstrations. Some rallies near parliament in Madrid boiled over into clashes between protesters and police.
The new law also sets a fine of up to 30,000 euros or obstructing authorities in their work -- as many protesters have done in Spain while trying to stop bailiffs evicting poor homeowners.
Greenpeace members protested against the reform today by climbing up the sides of a 90-metre tower near Prime Minister Mariano Rajoy's offices.
They unfurled a banner reading: "No to the gag law."
The government said the law on demonstrations "aims only to sanction violent, aggressive or coercive actions".
"The law expressly protects the right to demonstrate," it asserted in a statement.
But a protest group campaigning against the reform, named We Are Not a Crime, vowed to demonstrate in central Madrid today evening in anger at the proposals.
