C.G.
Truthfully, I don't think there is anyway to prevent it. And as stressful as it is, I don't think you want to. These battles are an important part of their development. It's kind of like little lion cubs who learn to hunt by chasing and tackling each other at "play". Kids are learning important coping, negotiating and resolution skills even at this young of an age. If they are going to get along well with others as adults, they need to learn how to work things out for themselves. So my solution is to stand back and let it go, at least as much as possible.
My daughters are 7 1/2 and 4 1/2 and they get on each other all the time too. I try to stand back and let them go until I sense it is getting out of control or possibly violent (like the hitting you mentioned). That's when it's time to step in and let them know violence is no way to solve a problem. And that's about the time someone gets sent to the corner to think about what they did wrong. I will also break it up if it seems like it's gone on long enough, someone is crying uncontrollably or generally they are getting no where with the situation, and I give them stern but fair input on how to sort the matter out (and sometimes something has to be taken away as a punishment to reinforce the lesson). But up until then, I let them have at it, as hard as it is to do. Over time as their skills improve, the fights lessen and also last a shorter amount of time. And I find them getting to the point on their own where they apologize to each other and feel bad for upsetting the other person. It doesn't happen all the time yet...but we're getting there!