I checkmated without seeing it !!

You got lucky. White was winning until 23 Nf5. If he had played 23 Qg4, you would have had to sacrifice your rook just to avoid immediate mate.

I'll throw out just one tip that applies to the first weak move I saw, and it's a tip that applies to very many chess openings, so it should be very helpful: When White plays c3 in preparation for d4, it's a little too slow and it also prevents White from playing Nc3 for a while (which would ordinarily prevent ...d5), so usually the best move for Black is the *immediate* ...d5 to exploit the slowness and inability of White to play Nc3 to chase away Black's queen after ...Qxd5.
Here are some examples: