I know it's over, but how do I let go?

I know a lot of you women may not care about reading this long passage but it's worth a shot to get some blunt advice. Please understand I'm anonymous because I don't want to get judged or put on blast. But here goes:
My boyfriend and I have been dating for 2 years and we've known each other since high school. We have our history that's such a long story, and we lost contact for a long time until we reconnected again.
Anyways, he is a special person to me and by special he is my first. I love this dude with all my heart but he can be a bitch sometimes. Excuse my language but it's the truth. He can be a selfish dickhead with no consideration but he was never like that up until a year ago.
I put up with him because I am also a bitch with him. I only treat him the way he treats me. 
We had sex all the time and it turned into a routine. Now it's kind of rare.
A year ago before I started feeling differently we were in my bedroom watching a movie and he fell fast asleep, his phone vibrated and it was my first time ever feeling the the need to snoop through his phone. Something in my gut told me to. 
There I was laying down with my boyfriend embracing me and I unlocked his phone, and in his fb messenger I see that he's been talking to his EX.
I feel my heart drop and pushed him away. I went to my bathroom and cried my eyes out. He came after me and saw how hurt I was. I read everything, how they were going to meet up with each other and all the flirting I read. It's the same way he flirted with me at first. 
It felt even worse when he said he was sorry and started crying because I forgave him. I felt so stupid but it was the first time.
The second time I had a very close friend, just one. 
And I'm the type of girl who is usually alone, I don't talk to anyone and no one to really share anything with so the close friend I had was the only friend I actually talked to about things.
My boyfriend ended up trying to hook up with her.
But little did I know they messed around before I even dated him.
So I didn't really care but it bothered me to the extreme. 
We were all drinking that night and I wasn't around them at the moment when it happened. 
A few days later my friend told me that my boyfriend tried getting at her and I appreciated her telling me that but I was in denial, because he wouldn't do that, I thought. I was wrong.
I got the truth out of him that same day because everything that had been happening between his ex and my friend was killing me slowly inside, I wasn't sleeping or eating.
But my hard headed self still stayed with him after that. 
I ended up losing her as a friend because I wouldn't leave him, so she left me.
I've lost some of my love for him and my trust is not there anymore. I don't even know if respect is even there.
Things have been going down for us and the sex started getting less and less. 
He's been wanting a threesome but I can't do that because I've had bad experiences with them. That's another long story.. 
I said no but he's upset about it. Before, I agreed, but I changed my mind recently.
We were looking for girls before I changed my mind and I stopped completely after I said no.
I guess for him he never learned to stop and I snooped through his phone once again because something in my gut told me too, and read the messages of him talking to other girls, asking them what they do for living and if they have a boyfriend.
Calling them beautiful.. 
makes me feel like crying right now...
I saw pictures of nudes in his phone and several texts from a random number asking when she is going to see him.
My heart sunk but this I never said a word of. Yet..
But my problem is that I'm still in love with him. I've tried before to have my space but I can't seem to get it without him feeling bad. Which makes me feel bad.
I would do anything for this dude and I feel like nothing which is obviously the way he is treating me. 
But he has his good parts and I'm not saying that to cover for him. He really is a nice guy. I love him and we've done everything I've wanted to do. He's supported me and has been there for me through good and bad.
It just sucks that he doesnt realize how selfish he really is and how much it hurts to be in the position I'm in.
As a person, I'm loyal, honest, and I give so much love and I get taken advantage of.
I'm super sensitive, and I'm a cry baby. I cry over a lot of stuff that isn't a big deal to some. 
This is my first post ever and I just need to know my options. 
Sometimes I feel like hurting myself, and I have been to a mental clinic a long time ago.
I have hurt myself before and no this isn't a cry for help. 
I just need someone to understand.
Thanks to those who had the time to read my pathetic love life.

Glow Resources

Let’s Glow

Glow is here for you on your path to pregnancy

Glow helps you navigate your fertility journey with smart tools, personalized insights, and guidance from medical experts who understand what matters most.

25+ million

Users

4.8 stars

200k+ app ratings

20+

Medical advisors