I need advice.

So I have this boyfriend for two years and we have been through a lot together. He was my first kiss, he was also a lot of other firsts for me, if ya know what I mean. But he has cheated on me multiple times. He has flirted with other girls and there have been girls who said he went to their houses. He denies ever being physical with these girls but he did flirt with them. I don't know what to do. My friends tell me to break up with him but I'm on the fence about it. I don't want two years to be a waste especially since I still love him. Should I forgive him and work things out or should I end things?