You are probably punching too much with your arms and not enough with your body- especially the legs. When you throw punches you want the arm- the fist- to be driven by the torque created by the twist of the hips or waist.
Try this: stand near the bag, your feet as you would have them in your basic stance. Bend your arms so that the elbows are at your hips, forearms parallel to the floor. Your weight should be evenly distributed,on the balls of the feet. Starting slowly, put all your wt on one foot or the other and turn on it, using that leg/side of the body like the hinge side of a door frame. Let your hip drive your arm/fist; shift the wt to the other leg and turn (hard, sharply) in that direction. Do this again and again building speed as you get the feel; once you've got the sense of it you'll be suprised at how much longer, faster and harder you can punch.