They held signs calling for peace, waved the rainbow flag of the gay rights movement, and held placards honoring Heather Heyer, a woman killed last weekend opposing white nationalists at a rally in Charlottesville, Va.

On a hot, humid day, sweaty throngs on Boston Common chanted — sometimes angrily, often profanely — against Nazis, racism, the Ku Klux Klan, and fascists.

A city with a fraught racial past turned out tens of thousands of protesters Saturday for an overwhelming denunciation of racism, anti-Semitism, and religious bigotry, in a demonstration that was largely peaceful though punctuated with scuffles and some edgy nose-to-nose encounters among demonstrators.


“My co-workers thought I was crazy to come here because a woman was killed last week,” said Ny Martin, 40, of Medford. “But that’s why I had to be here.”

The local impetus for the massive demonstration on Boston Common was a rally planned before Charlottesville by the Boston Free Speech Coalition, a group that claims to promote open dialogue but that civil rights advocates say is linked to people who espouse racial hatred and violence.

Coming a week after the Virginia violence, the Boston Free Speech rally generated a massive response by residents and law enforcement officials.

“I think it’s clear today that Boston stood for peace and love, not bigotry and hate,” Mayor Martin J. Walsh said at a late afternoon news conference.

Walsh also thanked the Boston Police Department and other law enforcement agencies, including the MBTA Transit Police and the State Police.

“They carried themselves with dignity, and I’m proud of that work, and I’m proud of the fact that here in Boston we were able to have a very successful day,” the mayor said.

Police Commissioner William B. Evans said at the news conference, “We probably had 40,000 people out here standing tall against hatred and bigotry in our city and that’s a good feeling.”


Nearly all the demonstrators “were here for the right reason,” Evans said, though “we did have people who came here to cause problems.”

By early evening Saturday, police had made 33 arrests on disorderly conduct and other charges.

President Trump, who was ridiculed by protesters throughout the day with profane chants and protest signs portraying him as a Klansman and a Nazi, said on Twitter Saturday afternoon: “Looks like many anti-police agitators in Boston. Police are looking tough and smart! Thank you.”

He also commended Walsh and then, about an hour later, “the many protesters in Boston who are speaking out against bigotry and hate. Our country will soon come together as one!”

As it turned out, the Free Speech Coalition rally was a dud. The tiny, unremarkable gathering of what looked to be about 50 people on Boston Common’s Parkman Bandstand was too far away to be seen or heard by an opposition that covered acres.

Though the free speech group was technically free to speak in the public park, security measures denied them an audience as well as press coverage of what they had to say.

In a large sense, Saturday’s huge counterprotest was more of a reaction to Charlottesville, its indelible scenes of neo-Nazis marching with patio torches and chanting against Jews, and Trump’s widely condemned comments blaming “both sides” for the violence.

Protesters faced a line of police on Boylston Street. Craig F. Walker/Globe Staff

Counterprotesters in Boston gave little credence to claims by organizers of the local “free speech” rally that they did not represent any particular ideology or condone the violence in Charlottesville, repeatedly calling them “Nazis.”


“Excuse me,” one man in the counterprotest innocently asked a Globe reporter. “Where are the white supremacists?”

Numerous demonstrators said they marched not to simply shout down the small group on the bandstand, but to express their frustration over what they say is a move into the mainstream by expressly racist groups previously confined to the fringes of American society — and to show their resolve to resist.

“I think it’s very important that we stand up to the racists in this country,” said Debbie Larsen, who traveled from Rhode Island to join the event. “You can’t sit idly by and watch this. I want to see a big force of unity standing shoulder-to-shoulder against these people, to let them know they’re the minority, to show [that] most Americans don’t feel the same way that they do.”

Larsen blamed Trump for encouraging the far-right, and decried his remarks blaming “both sides” in Charlottesville.

“If Trump came out and condemned the racists and Nazis at that march [in Charlottesville] the way he’s condemned Mexicans, Muslims, and every other marginal group in this country, a lot of us would have said, ‘OK, there’s hope,’ ” Larsen said. “But what he said this week showed us that there’s no hope coming from the top down. It’s up to us.”

Demonstrator Andrea Demuth, 57, of Haverhill held a picture of Heyer, who was killed last weekend. “It’s one thing after another. It’s a cesspool of hatred, and we don’t deserve this, and I’m angry.”


The event was heavily policed and set up to minimize contact between the free speech group and the mass of counterprotesters.

The city erected several sets of fences to isolate the bandstand with an approximately 75-yard buffer zone, into which no protesters were allowed.

Counterprotesters looked toward the “free speech rally” at the Common’s Parkman Bandstand. Craig F. Walker/Globe Staff

Members of the “free speech” group, which had a permit for their event, spoke essentially to themselves for about 50 minutes. If any of them said anything provocative, the massive crowd did not hear it.

On of the speakers, Shiva Ayyadurai, a Republican Senate candidate, posted his remarks to youtube.

The counterprotest seemed to have a different feel depending on where you stood. Up on the hill overlooking the bandstand, demonstrators crowded under shade trees and spoke among themselves, or taunted the tiny gathering on the bandstand with chants of: “Where’s your rally?”

Protesters held a large banner that read: “Love thy neighbor. No exceptions.” Men passing out water drily advised, “Stay hydrated to fight Nazis.”

Closer to the fencing, the crowd was far edgier.

They chanted:

“Racists go home.”

“Shame! Shame! Shame!”

“[Expletive] Trump.”

“[Expletive] Nazis.”

And the more sing-songy lyrical, “[Expletive] the Nazis.” Clap-clap. Clap-clap-clap.

Two young men — one in a Trump hat and the other wearing a Trump banner like a cape — who tried to make their way through the crowd were swarmed by dozens of counterprotesters screaming, “Nazis, go home!” The cluster of people surrounding the men moved with them as they walked.


“You’re a scourge on humanity, Nazi scum!” one man screamed. Sensing that the swelling intensity of the crowd was testing self-restraint, a number of voices began screaming, “No violence!’’

A short time later, another young man holding a “Trump 2020” sign, was similarly swarmed. “This is my town,” he yelled back. “I have as much right to be here as anyone.”

The crowd mockingly serenaded him:

“Na na na na

Na na na na

Hey hey hey

Goodbye . . .”

As those gathered for the “free speech” rally left their cordoned-off area, a large crowd surrounded one young man and shouted “Nazis suck” as he walked down a Boston Common path toward Charles Street. He walked onto Charles Street with a police escort until a police van arrived and he was placed in it.

Several dozen Boston police officers with batons and other crowd-control gear held back a gathering crowd of counterprotesters, while other officers loaded the free speech rally supporters into vans for transport out of the area.

Some in the crowd shouted “make them walk!” and challenged police for defending people they called “Nazis.” Hundreds chanted “No Trump! No KKK! No fascist USA!” and “Off our streets, Nazi scum!”

A protester screamed at a “free speech” rally attendee who was escorted away by police. John Tlumacki/Globe Staff

As the vans left the area, with helicopters hovering overhead, protesters booed their occupants and shouted “Who do you serve?” at police, while others ran after the vehicles. Officers restrained several people with plastic zip-ties around their wrists.

Skirmishes continued into the afternoon as the main force of counterprotesters disbanded. Shortly before 4 p.m., Boston police reported that rocks were being thrown at officers on Tremont Street. Moments earlier, the department asked people to refrain from throwing “urine, bottles, and other harmful projectiles at our officers.”

A little after 5 p.m., about 100 to 150 protesters crowded onto Washington Street, near Downtown Crossing, one waving a black flag with an antifascist emblem on it. Some were maced, and the crowd ran. Officers yelled “move back” and used their bicycles to block the street.

Later, William Gross, superintendent in chief of the Boston police, praised a large group of protesters gathered at the corner of Washington Street and Temple Place around 6 p.m. for “doing it the right way.”

“Unanimously, we told people with hatred that this is not happening in Boston,” Gross told the protesters.

Among those in the crowd was Bruno Desima, 18, of Peabody.

He had come to protest the Boston Common rally, he said, and throughout the day, it appeared that police and protesters were on opposite sides. Desima credited Gross with helping calm the crowd late Saturday afternoon.

“Being able to walk up and tell a cop how you feel, and being able to interact with police, that’s my first time doing that,” he said.

Gross shook hands with some protesters and took photos with others.

“You deserve it. All of that that was negative, you turned it into a positive,” Gross said.

Of the right-wing groups who were at the Common on Saturday, he said: “You ran them out of town.”

Dan Adams, Evan Allen, Steve Annear, Meghan E. Irons, Martin Finucane, Cristela Guerra, Beth Healy, Akilah Johnson, Aimee Ortiz, and Jan Ransom of the Globe staff, Globe correspondents Jeremy C. Fox and John Hilliard, and Meghan Barr of boston.com contributed to this report. Mark Arsenault can be reached at mark.arsenault@globe.com. Follow him on Twitter @bostonglobemark.