Hafey a început să joace în MLB cu St. Louis Cardinals în 1924. Din 1928 până în 1930 a deținut în medie 27 de runuri la domiciliu și 114 RBI . [1] În iulie 1929 a atras recordurile Ligii Naționale, lovind zece valabile pentru zece runde pe o glumă consecutivă. În 1931, a luat titlul de cel mai bun hitter din ligă și a terminat pe locul cinci în MVP-ul sezonului. [2] Odată cu cardinalii, Hafey a câștigat două World Series , în 1926 și 1931, fiind în cele din urmă schimbat cu Cincinnati Reds după încă o altă dispută salarială cu conducerea. Odată cu noua echipă, în 1933 a fost chemat pentru primul joc All-Star din istorie, unde a înregistrat primul bar valid din istoria evenimentului. S-a retras după sezonul 1937. În ianuarie 2014, cardinalii l-au anunțat pe Hafey drept unul dintre cei 22 de membri ai clasei inaugurale a Hall of Fame a echipei. [3]