People marched following the death and dismemberment of a local 18-year-old woman and a xenophobic drive-by shooting attack in which six people were injured.
The crimes highlighted the problems of gendered violence and xenophobia, with the suspected shooter saying he was driven to carry out the attack after hearing a Nigerian man had been arrested in connection with the woman's murder.
A poster reads 'stop fascist-racism, enough of playing with migrants' lives'.
Organizers said between 10,000 and 30,000 protesters turned out for the march following a call by NGOs, anti-fascist organization, unions and several leftwing political groups.
The town's mayor had earlier requested a halt to all public demonstrations, arguing that the city needed time to heal.
Other smaller rallies were held across the country as an act of solidarity.
Due to the high tensions in recent days, which have also seen far-right protesters clash with police at an unauthorized protest, shops shut early and schools were closed for the day in Macerata.
This resident put up heart-shaped balloons bearing the names of each of the victims of the shooting.
A man holds a flare in front of a banner reading "Movements against fascism and racism".
The march came just three weeks ahead of a general election in which far-right parties are predicted to perform well.
This banner, made by a Florentine organization, reads 'no-one is clandestine'.
All photos: Tiziana Fabi and Marco Bertorello/AFP