Nice finish! Black's real mistake was playing 7...Re8. If he had played 7...e5, he probably would have been fine. 7...Re8 allowed 8. e5 which forced the knight to g4, which lost a piece to 10.e6 (nice move!) and 11. Ng5. And you are right that he should have played 18...Qxd7, which would have left you with two pieces for a rook and a better game.
cool tactic

someone messaged me as to why the tactic (17.Qxh6) wasn't necessary. the computer decided that 17.Qh3 was safer and would have been more comfortable. but it certainly wouldn't have been as cool! here is a possible line instead of 17.Qxh6
17. Qg3 Re7 18. Qxg6 Qf8 19. Bxh6 Qf5 20. Qxf5 exf5 21. Bxg7
Bc6 22. Bf6 Rf7 23. Bxe5 fxe4 24. Bg3 1-0
white has comfortable end game, and can win simply. computer gives white 7.06 avantage!
Sometimes when your playing, certain tactics just jump out at you. and this game happened to be one of those games. even though the tactic was unnecessary (i could have won more easily other ways) i choose to follow through with my tactic. take a look at this queen sac.