I don`t know if your problem is what I think it is, but at least I`ll try to add something here:
This problem is often caused by punching with the palm of the hand facing ground.
Test the following way to see what I mean:
1. Make a fist, palm of the punching hand facing to the ground.
2.Just as your sitting in front of your desk, try in slow motion to punch not against the edge of the desk but just above "vs your Monitor" as if you missed the edge.
The middle parts of your 4 clenched fingers have to slide above the desk. When your thumb reaches the edge of the desk, the fist can`t move on and if your forcing the move, the thumb can`t be kept in his position.
This is exactly what happens often, when someone punches above the defender`s arms, fists etc . As in a competition or fight punches are executed fast or at least faster, one often feels the resistance to late and therefore doesn`t stop the punch early enough to not get hurt.
When someone punches not straight against the opponent but from the outside, the risk of getting hurt will probably increase.
That is so because of the angle of attacker`s and defenderīs arms. The more one`s punching arm and the opponent`s defensing arm are in a kind of cross-position, the harder it will be for the thumb to slide along the defense and not to be trapped.
For lowering the risk to get hurt, one could punch in a way that he turns the palms of his both fists a little more towards each other
(while stretched arms: ellbows will point more to the ground than outwards like before). One can hit with his fist in such a position or turn it to the old position at the end of the movement,just as the fist has nearly reached its target