8...Ba4 looks like a loss in tempo. Best to castle and develop with Nc6.
11...Qf6 doesn't protect the center as well as 11...Qd6.
14.Nd2 may not be as strong as 14.cxd5 Bxd5 15.Qc2.
15...Bxc4 is the wrong way to take the pawn. Best is 15...dxc4, and if 16.d5 (threatening 17.Bxf6) 16...Ne5 17.Be2 Qf5 (to break the pin),
17.f4 looks weak. White can play 17.d5 (threatening the Queen and Knight) 17...Ne5 18.f4
18...b5 doesn't look good. Better seems 18...Qe6 and 19...Rfe8, putting pressure on White's backward pawn.
20.Kh1 is the losing move for White. White may be winning after 20.Qc3 or 20.dxc6.
I was expecting to lose this game, you can see why, I played pretty badly in the beggining. But stuff I've learned here at chess.com helped me win the last part of the game. This was an unexpected win. I want some constructive criticism as to how I can improve and the likes. Thanks