Non-union, anti-government protesters clashed with police in some cities, including Milan, where students dressed as Santa Claus jumped the fence at a regional government office building and threw bottles and other objects. Police dispersed that protest with tear gas; authorities said 11 officers were injured.
The general strike, which shut down basic services across Italy, is one of the largest by two of the nation's most powerful union groups against a centre-left government, which had traditionally cozied up to unions. The strike created a patchwork of chaos as trains, buses, schools, ports and other services closed down.
Premier Matteo Renzi said the right to strike must be protected but insisted his tougher line is necessary to return the economy to growth and create jobs.
"The future belongs not to those who are afraid but those who have the courage and the desire to change," Renzi told a business forum in Istanbul.
In a sign of discord within his own Democratic Party, some of its members joined the marches. Stefano Fassina, a former deputy economics minister, told Sky TG24 said it was important that someone from the party marched alongside the workers.
Susanna Camusso, the leader of CGIL, Italy's largest union, led a protest march in the northern city of Turin, headquarters of carmaker Fiat and a symbolic city for the nation's shrinking industrial might. She said changes need to be made "with and not against the people."
The unions are protesting spending cuts and labour market reforms that will make it easier for companies to fire workers that Renzi has passed in a bid to attract foreign investment.