patzer2: Knowing it was a difficult Friday puzzle, I easily found the first two moves of the solution with 21. Bxg6 Rxg6 22. Nxd5
(+3.21 @ 27 depth, Stockfish 7). The continuation after 22...Nf5 23. Rh8+
(+13.81 @ 33 depth, Stockfish 030116) was also pretty obvious to me.
However, the follow-up is much more difficult if Black deviates from the game continuation with 21...fxg6 or 22...Ba4, as the following analysis with Deep Fritz 15 illustrates:
<21. Bxg6 Rxg6>
[21...fxg6 22. Nxd5 Nf5 23. Nc7+ Kd8 24. Qc3 e5 25. Rxe5 Rc8 26.Rhxe7 Rxc7 27. Rxf5 gxf5 28. Bxc7+ Kxc7 29. b4 Kd8 30. Qf6 Kc8 31. Qd6 Nb3+ 32. cxb3 Rd8 33. Nh3 a5 34. g6 axb4 35. Qxb4 Qa6 36. g7 Qf6 37. Kb1 Bc6 38. Nf4
Be4+ 39. Ka2 Qc6 40. Qc4 Kb8 41. g8=Q
(+7.89 @ 20 depth)]
<22. Nxd5 Nf5>
(22...Ba4 23. Nc7+ Kd7 24. Rd1 Rag8 25. Rxf7 Kc8 26. Rxe7 Bxc2 27. Rxd4 Nb3+ 28. Kxc2 Nxd4+ 29. Kd1 Qc5 30. Qc3 Qxc3 31. bxc3 Nc6 32. Rf7 e5 33. Be3 Rd6+ 34. Kc2 Rd7 35. Rxd7 Kxd7 36. Nd5 Ke6 37. c4 Rc8 38. Kd3 Kf5 39. Ne2 b5 40. Ng3+ Ke6 41. Nb6 bxc4+ 42. Nxc4
(+2.87 @ 21 depth)]
<23. Rh8+ Bf8 24. Nc7+ Ke7 25. Bd6+>
Black resigns in lieu of 25...Kd8 26. Rxf8+ Be8 27. Nxe8
(mate-in-16, Deep Fritz 15 @ 21 depth).
P.S.: For a Black improvement, instead of 20...Bd7? allowing 21. Bxg6
(+1.99 @ 21 depth, Deep Fritz 15), the second player can hold it level with 20...Nxd3+ 21. Qxd3 Nf5 = (-0.25 @ 33 depth, Stockfish 5 SE).