Your opponent lost a piece on move 8. He also should have avoided 7. g4 and just returned the pawn with 7. Nc5. You avoided 7...Be4 8. Qe2 Bxa1 9. Nd6+ Kd8 10. Nxf7+. After that your opponent was a piece down without compensation.
Maybe 12. e6 offered "practical chances."
17. b5 exploits the pin nicely.
I assume when you played 19...Bxc5 you failed to notice that the queen was defending the rook.
I was surprised, but 23...Ra8 traps White's queen. 25...Qf2#, so you chose the strongest move anyway.
31. Qf1 holds out longer, but is futile.
I've been studying a bit on the Caro Kann. I have recently been playing the French Defence but I just wanted to see how well I do compared to the French. I'm still trying to figure out if i'm a positional or tactical player. So I'm experimenting with the positional and tactical openings. I've recently posted a forum of my french game if you guys haven't seen it yet. Link to the game.
http://www.chess.com/forum/view/game-analysis/need-help-improving-my-game-game-analysis