First, it sounds like you are trying to do a really good job with your boys. It must be tough having two at the same age on your own!
The number one thing you must do is be consistent and follow through. If you set a consequence, then you must stick to it. The trick is to set consequences that you can live with. I would not recommend throwing away or giving away toys as a punishment. I think this will only breed fear and resentment rather than trust and cooperation. I do think it is a good idea to take a toy away for a day or two if they are not playing with it nicely or not listening.
You also need to get on their level when you are speaking to them and make sure to interrupt what they are doing. If they are playing, they will be so engrossed in what they are doing. If you are standing over them, or are across the room from them telling them to do something, they aren't going to listen to you. That is normal behavior at this age (regardless of if they are boys or girls). With young children, you must get down on their level and get them to look at you so their focus is on you and not the toy. This may take a little work, but is worth it.
Giving your children choices is a good idea too. Again, they must both be choices you can live with (For example - "It is time to go, do you want to brush your teeth first or put on your shoes first?" OR "Do you want to cooperate or do you need to sit in time out for a few minutes") Also be sure to give kids plenty of warning when transitions are about to happen (going to school, getting ready for dinner, bath,bed, etc.)
Finally, many people believe that children are more "real" with their primary care giver - usually the mother. That means they are more willing to show all their true feelings, which is why they seem to act out more with their mothers than with people they are not as close to. It is hard to deal with, but is a complement and a sign of your close relationship with your children. It is a sign of trust.
Good luck!