Should I stay or should I go?

I have been dating my bf for 2 years. Lately we have been getting intolittle argumentative   fights. But just the other day we got into a fight I was taking a online test and I was frustrated, and acting inappropriate. After my test I got a poor score and my bf looked at me and told me it was over cuz if the harsh words and frustrating things I said. I take the credit for my actions. Then I got some soup and sat on the couch. I said some mean comments and he leaped from the chair and poured my soup all over me and smeared it in my face. From there on it lead to a physical fight. I not here to feel sorry for me as I take responsibility for my actions. All I want to know is what to do from here as I feel empty, hurt, and feel like he can do as he please. What do I do forgive and forget or move on?