A lot more experience or higher rated players than me can give a better analysis..my move after 14a3 probably would have been qf4..with hope that next move would have been knight to e4 capturing pawn, which he may have answered by capturing my e4 knight with his bishop, and I would have taken the bishop with the pawn, putting his king in check and winning the pawn in the exchange.
Instead of 19bg4; which cost you the bishop, I probably would have moved the a8 rook to c8; protecting the c3 pawn.
22qe5 probably cost you the game. I would have looked at qf4, threatening the c1 rook and somewhat pinning the d1 rook to protect it.
23rac3 was where things really started to unravel, maybe you were trying to protect pawn but with the threat from bf7 coming and the ability to take e5 knight with knight or rook and eliminate the threat, either would have been much better.
Finally 27nxg4 was probably not a good idea, as it just leads to an exchange that threatens your rook, and when you are behind you don't want to trade pieces; although you were pretty much done anyway.
The 20 qxd suggestion is very good also.
Hope that is helpful, as mentioned I'm not really experienced enough to dish out advice, but those are some ideas.

Check out this game, if you don't mind. I played Black.
I recognized a halfhearted threat at 10. Bf4, and at this point was running out of ideas for strategy. 10. ...a6 was just to put a little pressure on the Knight, since I didn't really fear Bxc7 in any case. After the next sequence of moves I was definitely ahead at 13. ...Qxd6. Seems to me that I should have been able to turn this one into a win, but somehow my assault fell apart. Can anyone help me see what happened? What would have been a good course of action after 14. a3 ?