Sweetie, you just have to persevere, and it is very very hard. No one tells you at the baby shower when you are opening those cute little outfits just how hard it is to raise kids. The great thing about phases is that they pass. They can last a long time, but they do go away.
I have a three and a half year old, and it took him until he turned three to really get trying like this. And it is tiring, and exhausting, to come home after working and have a small child just be trying.
Some things to think about -- is he sleeping well? Do you have to wake him up in the mornings? Maybe he needs a little more sleep. Even missing a half hour on a regular basis seems to mess them up and make them crabby.
Is he eating well? Does he need to eat more often? Maybe he is cranky.
Does he have cabin fever and need more of an outlet to let out that energy? Put on some music and dance with him, take him to the mall and let him run at those play areas.
Try not to let him get a rise out of you. I'm not that great at it myself, not that patient, but I have heard that if you respond calmly to him and hold the course, you will prevail.
Also, you could tell him it is two times or you are out. I tell you once, I tell you again, you didn't listen, you had the choice to listen, now you get a time out/punishment/whatever.
Good luck. I think during these stages, you and your husband need to give yourself more breaks. Try to take turns getting out to do something for yourself, or use a babysitter more often. I think that is actually the best advice I can give on this one.