Zillengold: Lentil 21...Nf3+! is wrong. It is really 21...Nf3+? because 22.gxf3 and black has nothing. Black must move his queen as it is attacked by a rook, losing time, unless he has a constructive square to go to, which it does not. However, you are correct that 21. Bxf5? is wrong. Here is why...
21.Bxf5?, Rxf5! 22.Rxf5 (if you can find a better move tell me)and now comes your Nf3+ 22...Nf3+!
Now there are two continuations. Here they are...
22...Nf3+ 23. Rxf3, Qxe1+ 24. Rf1 (forced), Bxh2+! 25. Kxh2, Qxf1 and white has knight and pawn for a rook , which means
.
Another continuation is 22...Nf3+ 23. gxf3, Qxe1+ 24. Kg2 (forced), Re1 and the white king is in trouble.