4.Bf4 : I'm not sure this is theory, but I can't see how it can be bad. Usual moves are Nf3 and e3.
4...Bf5 ? but this is wrong, because of 5.Qb3 ! attacking b7. This is the reason why the bishop remains trapped, even in the Slav.
14.b3 (?) doesn't seem really good. The try to undermine will not work, and the Nc3 becomes defenseless after moves like ...Qa5. The multi-purpose Qf3 ! was better (it threatens b3 with more efficiency).
17...bxc4 ? : why get doubled pawns if it is avoidable ? Yes, it keeps the white rooks off b1, but anyways White controls b8 too, and ...Bxc4 prevented the penetration by keeping the file closed, while remaining relatively pawn-friendly.
22.Qf4 ? : why refuse the trade ? This is an easy endgame. Trade the queens and then the minor pieces, and the d3 pawn will fall. After what, the win is not guaranteed, but still you have good chances (partly due to the useless h6 rook).
24.g3 ? : Ouch. this creates a gaping hole around your king, that you cannot cover with a minor piece while his bishop can get in. A few painful losses will teach you to feel this as unsafe. Black should have played 24...Bf5 and 25...Bh3 where White is forced to advance the f pawn, weakening his position further.
This was indeed a lucky win... After 32...h6, you have no perpetual check and the pawn will promote.
Somehow, I can never consider a lucky win as a genuine win. Although I don't mind winning in any fashion (it beats losing in any fashion), there's something satisfying about beating your opponent through superior skill. I recently played a game on a new chess website (Sorry Chess.com, I still love you, I'm just keeping my options open), where I beat the opponent at the eleventh hour through sheer luck. He missed a simple one-move checkmate that I had at my disposal and the game was lost (for him/her). Have a look at the game. Any feedback would be greatly appreciated. I was playing the white pieces.