. . . and black is a pawn down and faces the problem of what to do about the h7 pawn. I haven't checked Fritz, but I don't think you can move into the check on f8. If 18. ... Kh8:
19. Nd5 Nxe5
20. Nb6 Rxc2
21. Nxa8 ...
Then you have Bxf7 with a slight material edge or adventures with Nf3+. Or white can allow the capture with check on c3:
19. Nxg4 Bxc3+
20. Bd2 Bxd2+
21. Kxd2 Bxg4
22. hxg4 Rf8
23. Bd5 Ra7
24. f3
Edge to white, but black may be able to hold the balance if he keeps the rook and trades his knight for the bishop. Other ways to play this line, of course. I'll look at it some more and see if I can improve it.
You know, on further reflection, it's stupid for black to give up the two bishops with Bxd2+. They are his number one asset in this wide-open position. He should retreat the bishop to d4, offering to repeat and attacking the c2 pawn, while setting up and attack on the f2 pawn, maybe piling on c2 with Bf4 and getting the knight out. White has a pawn, but black has open lines and great squares for his pieces, and may get the pawn back very soon. Black should move Kh8, white should allow Bxc3+, and the resulting position is unclear. Or so cold analysis would suggest. Back in the real world, congrats on winning your game!
OK . . . bad news on Kh8. According to Fritz, there follows the casual beat down Nxg6! hxg6, hxg4+! followed by black's being subjected to an activity popular in men's prisons, sans lube.
The bad news is that Kf8 loses as well. Fritz gives 21. ... Kf8 22. hxg4 Bxe5 23. Nd5 Kxf7 24. Nb6, etc. Better, according to the computer, is to sac the knight sac and play the humble 17. ... e6. The d5 pawn is gone, but you'll always have your memories, says the Intel-driven voice from the burning bush.
If it was an OTB game, I would use up my time looking at 17...Nxg4. I think I would be most worried with a quiet move like 20.b6 (threatening to fork my Rooks). Not sure what would be played between move 17 and move 20!
What would you play?