Couple of things to think about: 4...d6 is probably not the best response to 4. Bb5. I play Nd4 there. But even still, d6 is playable.
5... Bg4 is also a bit suspect. I mean it's not bad to pin that knight, but white hasn't decided to castle king-side yet. So the pawn roll, h3-g4-h4 will probably leave white with an advantage. Better might be Bd7 and then continue development with: Be7 and O-O, probably throwing in a6 b5-Na5 to catch the light-squared bishop.
At first I wasn't sure, but I think now that 8...Bxf3 was a great move. On: 9.gxf3 Nd4 10. Qe3 Ng4!! 11. Bxe7 Nxe3 12. Bxd8 Nxd1 and black is winning. If instead 11. fxg4 then Bxg5 winning the white queen. After 9. Bxc6 you are clearly winning. All that really remains for you to do is open the position and simplify to a rook up ending. Or to exploit the half-open b-file as you did.
I might have played 13... d5 and grab up the center squares but you really shouldn't go wrong here with just about anything.
Allowing 16. Qxg5 was unfortunate. That was really your only bad move of the game. Even still you are winning. Trading queens with Qxg5 should be enough to win this game still.
Thanks @djangoMeaster, that's very kind. Never really been master rated though. I have been playing chess seriously for 30 years or so and have been rated over 2000 USCF. Lately I just play and study online.
4...d6 is fine. 4...Bb4 or 4...Nd4 are played more often, but that does not mean they are better.
4...Bg4 seems wrong. With your pawns d6 and e5 on black squares, Bc8 is your good bishop and Bf8 is your bad bishop. So you should keep Bc8 and try to trade Bf8. Hence 4...Bd7 and 4...Be7 are better moves. He should kick your bishop with 5 h3 or 6 h3.
After that you have a winning position and your slight mistakes do not matter.