"Had the anti-Nazi folks peacefully demonstrated, & police kept them apart as is normal, the violence wouldn't have happened."
Agreed.
There are several media reports that Charlottesville police reacted slowly when the white supremacists and the counter-protesters fought with each other.
I'm reminded of an MLK Day demonstration some years ago in Denver at the state capitol by white supremacists. The police erected barriers to keep a safe buffer between the supremacists and counter-protesters -- and the counter-protesters rushed through the barriers.
Everyone has a right to protest, to peaceful demonstration. It is the unfortunate task of police to try to keep apart protesters and counter-protesters. When that fails, the fault lies with the violators, but also on the police.
Lastly, the answer is NOT to say we can't allow white supremacists or communists or [fill in group we don't like] to demonstrate because they might cause a violent reaction. That's known as a heckler's veto.