He's not done it since, he's stopped drinking to excess because of it, he's apologized to you and to the girl and it happened three years ago. If you want to break up with him then do so but you certainly shouldn't feel you have to because of that little indiscretion three years ago wherein he's corrected his poor behaviour and has kept you happy for the past three years.
I suggest you get out of your own head and in particular, you tell you gf that your boyfriend has been nothing but good, kind and loving to you since that little incident so its in the past and you'd like to keep it there from here on out.
“The willingness to accept responsibility for one’s own life is the source from which self-respect springs.” ~Joan Didion