I don't know what causes, but I did used to have the same problem as you! I used to just get around it by using a purple base (Shu Uemura) to cancel out the yellowness (I know it's not really a solution, more like a temporary fix).
I started using a few whitening products to attempt to even out the skintone of my face. It might have done a bit of good. I used the SK-II whitening serum and I think it did help a bit, but I know even if it didn't I'd like to think so since it was £120 for a little bottle.
My problem at the moment is that I have a neck which is darker than my entire body. I think it is from intermittent outbreaks of eczema which leads to hyperpigmentation (darkening of the skin when it heals), so it's just darker. It's a bit annoying though, since my face looks mismatched to my neck!