Authorities expected violence. They issued warnings to those in the Berkeley area to steer clear of the fray. Behind face shields and helmets, they lined the streets, girding themselves for disorder.
But Thursday's anticipated showdown incited by an invitation for Ann Coulter to speak at the campus turned out to be more of a shouting match than a melee, with little physical confrontation.
A day earlier, Coulter announced she would bow out of an appearance planned at UC Berkeley that had incited protests. Free speech, the conservative commentator declared, had been "crushed by thugs."
Organizers filled in the empty slot with surrogate rallies, and city officials braced for the same mayhem and destruction that has struck Berkeley multiple times in recent months, involving alt-right demonstrators and anti-fascists.
"Don't get baited by provocateurs," they urged.
UC Berkeley police issued a long list of prohibited objects, which included water bottles, balloons, frozen fruit and — in what city officials later said was a mistake — banners and signs.
The hundreds of demonstrators who appeared at the campus's main plaza on Thursday brandished signs that said "alt right delete" and chanted, "Say it loud, say it clear, refugees are welcome here!"
The boisterous affair was matched an hour later by a diverse mix of conservatives who gathered blocks away at downtown's Martin Luther King Jr. Civic Center Park.
There, demonstrators mingled as they listened to passionate speeches that ranged from support of President Trump's immigration policies to veterans' rights to calls for the anti-fascist group ANTIFA to be declared a terrorist organization.
"We'll keep showing up to defend free speech, right?" said one woman who was met with cheers.
Stewart Rhodes, founder of the Oath Keepers, said he came to protect future conservative speakers.
"We are only here for self-defense — to keep the hotheads in check," Rhodes said.
Coulter had been invited by two student groups to talk about immigration policy. Administrators said unspecific threats led them to cancel her appearance. They then rescheduled it to the week before final exams at a location off the main campus. Threats of violence, they said, limited their options for dates and locations.
Coulter insisted on sticking to the initial date and pushed the college to find her a venue.
As the standoff became a national focal point for conservatives accusing the university of quashing free speech, Coulter's student hosts and financial sponsor withdrew. Without assurances of safety or a building in which to speak, Coulter abandoned plans to appear at Berkeley.
Berkeley College Republicans, one of Coulter's hosts, and her financial sponsor ,Young America's Foundation, said they will continue to pursue a federal free speech lawsuit accusing the university of censoring conservative viewpoints.
Coulter, set to appear Friday at a sold-out fundraiser for the Republican Party of Stanislaus County, said in an email to the Associated Press that she might swing by Berkeley. But she was a no-show.
At the civic center park, many in the crowd sported helmets and carried shields. One toted a medical kit.
The alternative rally was organized by controversial figures including Gavin McInnes, founder of Proud Boys, a fraternal organization that has joined forces with the stick-brandishing Alt Knights.
Aside from a handful of arguments and opposing rally cries, there were few face-offs. An air of waiting for the resistance lingered. Any verbal debates quickly drew spectators and bloggers who held up cameras.
But the masked members of ANTIFA did not appear and the megaphones of By Any Means Necessary were sparse. A group called RefuseFascism.org kept their distance, chanting, "Hey, ho, hey, ho, Donald Trump has got to go!"
The daylong demonstration had light moments. When police used squad cars and motorcycles to clear the streets, they were defied by a man in a motorized wheelchair who performed wheelies. Pepsi cans were plentiful, a tongue-in-cheek homage to the soda company's recently panned commercial featuring Kendall Jenner at a protest.
Toward the end of the afternoon, organizers were urging attendees to disperse, even as counter-demonstrators showed up across the street.
The groups exchanged shouts and glares as police stood in a line between them and a helicopter hovered. Occasionally, someone would cross the street and engage in a debate, joined by a thick crowd of onlookers and media.
Eventually both sides wound up on the same side of the street in various flocks, arguing topics such as the burka, Native Americans, Muslim bashing and sexual politics.
Berkeley police said five people were arrested, including one man accused of attempting to incite a riot and another for allegedly carrying a concealed knife. No injuries were reported.
Some demonstrators vowed to continue holding rallies in "neo-Marxist strongholds."
"We need to support our right-wing brethren," said one to the crowd. "This is where the battle's at and this is where we will continue to hold our rallies, in cities like Berkeley."
Mayor Jesse Arreguin said Thursday that he recognizes why his city is often used as a stage: "We're a surrogate for the resistance against the Trump administration, certainly, and for progressive values."
But he grapples with the presence of extremist groups and how conservatives have been able to parlay the clash between anti-fascists and nationalists to their own advantage.
"It's engineered intense animosity against Berkeley, and that's a narrative they keep putting out there," he said.
St. John reported from Berkeley, Rocha and Knoll from Los Angeles.
9:30 p.m.: This article was updated throughout with details of Thursday's rallies.
12:50 p.m.: This article was updated with information about separate rallies planned in Berkeley and on the UC campus.