A man was charged with a hate crime Friday after a racially-charged incident in Chicago's Loop spilled out of a Starbucks and onto the street, ending with a punch thrown and a man sent to the hospital.

William Boucher, 23, was charged with a hate crime after he allegedly yelled racial slurs at people who had spilled coffee on him, the Cook County State's Attorney's Office confirmed.

It was an ugly confrontation that didn't end with words, and instead turned violent. On cell phone video of the altercation, you can hear a man yell, "Shut up slave! Do not talk to me!" at an African-American man.

"Calling people racist slurs. When I was coming to work, I was not expecting to see that," said Juan Torres.

Torres works at the Starbucks on Lake Street where the incident happened. Police said Boucher, seen in the video in the light-colored suit, became enraged after he had coffee spilled on him.

The confrontation was captured on video taken by an ABC7 Eyewitness News photographer.

"You're disgusting," the man says in that video.

"I was shocked because I thought it was going to end right there. Security was going to come. The cops were going to show up," Torres said.

But things escalated. The man is seen lashing out at a second man, who is videotaping him.

"Your children are disposable vermin!" he yells at that man, and spits on him.

After spitting on the bystander, punches are nearly thrown. But people intervene and the conflict appears to be over, even as the man continues yelling.

"Get on all fours right now! Get on all fours! Do not walk off on two legs!" he yells.

As the man starts to leave, he's approached by what appears to be a homeless man. He throws a single punch and sends him to the ground. Witnesses tackled the man and held him down until help arrived.

Police said the 59-year-old man who was punched was taken to Northwestern Memorial Hospital for treatment with an eye injury.

Starbucks employees said the suspect has been a problem customer in the past, but never violent.