first of all congratulations for a well played game, i've watched many games from players around 1300 and this one has clearly less blunders than what i expected. I'd say it's more you who played above your rating 1600 than him playing under his.
Your opening is ok, many people would criticize you choice of 5.Qxd4 instead of the usual Nxd4 but actually perfectly playable. Move 7 i would have retreated my queen (to d3 for example), since on principle bishops are a bit superior to knights especially in open positions like these, but that's not really a mistake, just a general strategic consideration.
Then you play energetically (8.e5!) and get a good position by move 12 with pressure on the d file, forcing him to enter complications with Nd5.
then you make your 1st big mistake : 16.Bxf6?, forgetting that it will open the 7th rank so his rook defends the d7 bishop when parrying the check.
The kind of oversight that easily happens OTB even to good players.
But even if there wasn't this tactical flaw, it's dubious on general principles to lose a time to snatch a pawn in such a tense and open position (especially with your king not castled yet). just let him lose time (and get a bad pawn structure) capturing your knight :
you should have played simple 16.Qd5+ directly. For example : 16...e6 17.Qxd7 Qxd7 18.Rxd7 fxg5 19.00 would have given you an excellent game.
After that mistake you still get 3 pawns vs 1 on the queenside but he is a bishop up, and since your pawns aren't advanced, his piece up gives him the advantage (but not a very big one, your pawns are dangerous)
then apart from a mutual oversight (see game notes), he gradually loses the thread, especially when uselessly leaving his f6 pawn en prise, and you play good, sensible chess, activating your pawn majority and bringing your king to the center. (no time for the endgame now! might come back to it later, although i'm not sure i like your decision to leave him take your 3 pawns to advance your pawn, i have to take a closer look)