3...b6 ! refutes 3.c5 ?, for instance 3...b6 4.b4 (4.cxb6 axb6 is more than fine for Black) 4...a5 5.bxa5 bxc5 6.dxc5 Bxc5 and a5 is as good as dead. I think you played it in more unclear circumstances.
21...Qb4 spares you some trouble, because 22.Qxb4 Rxb4 23.Bxc8 ? (Rxc8 ?? Rb1+) ...Rc8 is losing fast.

This was a position I reached recently from a QGD and thought it was actually a really nice example of an overloaded piece, a deflection and liquidation all in one go.
White has just moved his queen from d3 to c2 after the skewer on b5. This is preventing winning the exchange since ...Bxf1 is met with Qxa4 when white must then retreat his bishop.
However, the queen is overloaded, protecting d2 and threating a4 at the same time. As such, to win the exchange, I found the combination 17...Bxd2 18. Nxd2 Nxd2 (deflecting the queen from c2) 19. Qxd2 Bxf1 20. Rxf1 0-0. The game, I believe, now enters the start of the end game and as such the mass piece trade off can be classed as a liquidation.
Here is the game in full and any comments and feedback is appreciated! In particular I am looking for feedback on my analysis of the position posted, but general feedback is also gratefully received.