ABCG2 is a half ATP-binding cassette (ABC) transporter that facilitates efflux of a wide variety of substrates ranging from natural products to synthetic anticancer drugs. Over-expression of ABCG2 has been shown to cause multidrug resistance in both laboratory model cell lines and in clinical settings. The polymorphism in ABCG2 has also been suggested to affect the function and clinical outcome in cancer patients. More recently, ABCG2 has been suggested to play a protective role for cancer and normal stem cells. Thus, ABCG2 is an ideal target for therapeutic development to chemo-sensitize drug resistant cancers. In this paper, the recent progress on understanding the structure, function, and pharmacology of ABCG2 and its role in drug resistance and cancer stem cells will be reviewed.