There's a lot of overlap in the usage of these three words. Specific circumstances may narrow the choice down to two or even one of the three.
First question is; are we talking about why did something happen or are we asking why or how did someone make a choice to either do something or make a selection?
There would not really be a reason something happened (though you may see or hear this usage). Occurrences result from causes and certain things may be factors leading to that cause. 'Alcohol is believed to be a factor in the automobile accident.'
The accident was caused by the driver losing control of his vehicle.
Alcohol was (believed to be) a factor- one of the things that led to the driver losing control, but probably not the only factor.
The driver had a reason (though not a good reason) to drink and then try to drive.
People make decisions based on reasons- they use their logic to reach a conclusion. Sometimes the word reason is also used to describe some logical cause for an occurrence. 'There's a reason why grass is green.'
This is a common usage, but in my opinion, not really the best usage. Green grass is not green because of my logical mind. Grass color is caused by chemical properties in the plants that react with light in a way that is then perceived by my brain as having the property of 'green-ness'.