Hundreds of demonstrators surged through Center City on Thursday evening to angrily denounce police violence, at one point surrounding a squad car, and later grappling in a tense push-and-shove that saw officers ready their batons.
Despite the tumult, noise, and moments of high tension - including a rush to reach and take over the Vine Street Expressway - nothing was broken and no one was seriously hurt.
Police said they made three or four arrests; two of those arrested were released several hours later, to the cheers of some in the crowd. One demonstrator said he had been cracked in the face with a police club, and a high-ranking officer suffered a bloody lip when he was hit by a bucket thrown from the crowd.
"Given the size and passion of the crowd, overall we're doing pretty good," Chief Inspector Joseph Sullivan, the slightly injured officer, said as the protest wound down after 9 p.m.
Some protesters were exhausted after more than four hours of marching.
"My legs hurt. I'm hungry," said Molly McCormick, 29, of West Philadelphia. "But Harriet Tubman did not go home. So that's my motivation."
Organizers called the rally "Philly Is Baltimore," an effort to link frustrations over poverty and the deaths of African Americans at the hands of police in both cities. But Thursday's demonstration bore no resemblance to the rioting, looting, and burning that rocked Baltimore on Monday.
In Baltimore, 100 miles south of Philadelphia, violence broke out after the funeral of Freddie Gray, a 25-year-old African American man who died after being taken into police custody. Marchers here compared his death to that of Brandon Tate-Brown, a 26-year-old African American man shot to death by Philadelphia police during a car stop in December.
"I've been a victim of police brutality. It seems like people are starting to wake up," said protester Ryan Smith, 31.
The drama began at an upbeat, sun-splashed afternoon rally at City Hall. Speaker after speaker demanded an end to police abuse, and a dance line formed near 15th and Market Streets. The choppy whir of news helicopters drowned out the sound system at Dilworth Park, where organizers offered an open microphone to anyone wishing to speak against the political system.
"We're hitting the street now. Enough talking!" shouted Asa Khalif, a cousin of Tate-Brown's.
That's when things became uncertain. The protest split into two groups, one heading north on Broad Street, the other south on 15th Street. Bicycle police provided an escort, and mounted officers stood outside Suburban Station.
"Whose streets? Our streets!" one group chanted.
At dusk, demonstrators surrounded a police car near Rittenhouse Square, swarming around the vehicle for about 10 minutes, chanting, "F- the police!"
The protesters did not rock the car. The police did not move against them.
"Great on the part of the protesters, great on the part of the police," SEPTA Police Chief Thomas Nestel III said at that moment.
Outside the upscale Parc restaurant, the group chanted, "White silence is white consent!" Diners at the French restaurant just watched, some taking pictures.
"I'm not getting up," one diner said, staying at her table as the demonstration swirled around her. One marcher ate a piece of bread left on another table. From the high-priced apartments above, residents peered down.
The night's tensest moment occurred at Broad and Vine Street, as demonstrators tried to break through a police line to get onto I-676.
Batons came up. A bucket, water bottles, and police officers' hats flew through the air. Mounted police stood behind the line of officers.
"We're going to shut down the expressway and let the chips fall where they may," said Khalif, who belongs to a group called Racial Unity.
At least two people were arrested as police struggled to hold protesters back. One man told reporters he had been struck in the face with a baton.
After at least a half-hour, police gave way and let marchers pass, once traffic on the expressway had been diverted.
The march soon reached the Federal Detention Center at 700 Arch St., where shouts from protesters erupted in support of the prisoners inside. Lights inside the building flashed in response.
Protesters turned and marched west on Market Street back toward City Hall, where police formed a barricade to keep them out. Across the street, outside the Municipal Services Building, someone tagged the back of the statue of former Mayor and Police Commissioner Frank L. Rizzo with an epithet against police.
The demonstrators themselves were old and young, black and white, Christian, Muslim, and Jewish. Many were on bicycles, and some carried skateboards.
Leroy Artison of the Yorktown section may have been the oldest person there at age 91.
"When I was a kid, police were the most respected people around," said Artison, who as a Marine served in World War II. "I think certain police officers don't have adequate training. I think police officers should be able to apprehend a person without killing them."
McCormick, 29, volunteers at an after-school program for teenagers at the Circle of Hope Church on South Broad Street, but the youngsters did not come with her.
"Their parents were afraid for them to leave the house. That pains me," said McCormick, of West Philadelphia. "I just felt compelled to come out here."
Parents with small children wove strollers through the crowd, some of the children carrying small signs. "I am Aiyana," read one placard, referring to a 7-year-old girl killed by police in Detroit during a raid at her house.
Events in Baltimore had hit home - she has family there, and was dismayed to see rioting and looting on television. She was proud of those who protested peacefully. "I want this stuff to end," she said. "I want police to do the job they're supposed to do."
Several people said that violence against citizens does not have to be physical to be painful. "Keeping hardworking people in poverty is violence," one said. Someone else held up a sign showing photographs of black men who have been killed by police.
"We don't want it to turn into a riot. We must be peaceful," said Anissa Davila, 62.
But frustration was evident.
"It starts at the root. We've been lied to in this education system, and I'm tired of it," said Tiera Warren, 28.
Elliot Martin, a 23-year-old studying philosophy and political science at Eastern University in Wayne, held up a notebook in which he had scrawled, "Love the Police."
"I just felt a lot of tension against the police. Police lives matter, too. And there are black police officers," he said. "Justice is about loving all people, including police."
But Maureen Connolly, a 31-year-old pediatrician from Center City, took offense at Martin's sign.
"It isn't a question about individual cops and their treatment of individuals," she said. "This is about a system that propagates racism and persecutes members of our community."
Baltimore and Philadelphia are remarkably similar: Both have African American leadership as mayor and police commissioner. Both have large black populations; Baltimore is 63 percent African American, Philadelphia 43 percent. Both have impoverished outlying rowhouse neighborhoods and glittery, tourist-friendly downtowns.
Both endure long-standing friction between their police departments and minority communities.
The rally was organized by the Coalition for REAL Justice, which said it wanted to support demonstrators in Baltimore. Organizers estimated the crowd at 1,000 early in the evening, while police put the number at 600 - both numbers far below the 1,700 who said on Facebook that they would attend.
"We're not trying to fight the police, we just want our rights," said Tanaya Reed, 17.
Added Markee Hamilton, "This will be in history books. I want to know I did the best I could to stand up."