If it's your most favorite expensive shirt you own then send it to the
cleaners. If you want to take a chance, depending on the fabric of
your shirt, I would add bleach.
Bleach should not set the stain, but may or may not (likely not) remove
the yellowing. Certainly worth the try, not much to lose.
Have you considered Oxyclean? It does a good job on many stains. If
the yellowing is due to an oily substance, a good degreaser such as
orange oil is another possibility.
If the sun screen contained some tanning dyes, I'd say only the oxyclean
has a chance.
The use and care label should tell whether or not chlorine bleach is
acceptable. In a general way, chlorine bleach will yellow a white cotton
shirt, and you'll never get it white again.
Actually, chorine bleach can be excellent for whitening cotton (unlike
wool, nylon, etc).
It's the optical brighteners that can be adversely affected (degraded /
yellowed) by chlorine.
Another approach might be a non chlorine bleach (peroxide based bleach).