Morales var en framgångsrik ungdomsspelare i Kuba och debuterade i den högsta ligan i landet, Serie Nacional de Béisbol (SNB), för Industriales från Havanna redan som tonåring säsongen 2001/02, då han hade den bästa offensiva säsongen dittills för en nykomling i ligans historia.[4] Han satte nya rekord för nykomlingar med 114 hits, 21 homeruns, 82 RBI:s (inslagna poäng), 46 extra-base hits och 60 poäng.[5] Han vann naturligtvis priset som årets nykomling den säsongen.[2] Han vann ligan med Industriales 2002/03.[1]
Morales flyttade till Dominikanska republiken för att ansöka om medborgarskap och försöka få kontrakt med en amerikansk proffsklubb som free agent. Han spelade i den dominikanska ligan vintern 2004/05 och skrev inför säsongen 2005 ett sexårskontrakt med Los Angeles Angels of Anaheim.[4] Efter att ha tillbringat hela 2005 och delar av 2006 i farmarklubbar debuterade han i MLB den 23 maj 2006. Samma år blev han dominikansk medborgare.[4]
2007 och 2008 spelade han omväxlande med Angels och i klubbens farmarklubbar. 2009 kom att bli hans genombrottssäsong där han etablerade sig som ordinarie spelare och en av ligans stjärnspelare. Han slutade bland annat femma i omröstningen om American Leaguesmest värdefulla spelare (MVP).[7]
Morales inledde även 2010 starkt med ett slaggenomsnitt på 0,290, elva homeruns och 39 RBI:s på 51 matcher. Den 29 maj avgjorde Morales en match mot Seattle Mariners med en walk-off grand slam homerun. Efter att han rundat alla baser och var på väg mot sina segerfirande lagkamrater gjorde han ett hopp för att landa på hemmabasen, men landade snett och drabbades av ett benbrott vid landningen.[8] Skadan var så svår att han måste genomgå operationer och han var borta från spel i nästan två säsonger.[9]
I april 2012 återkom Morales till spel i MLB med Angels.[10] Den 30 juli blev han den tredje spelaren i MLB:s historia att slå en homerun från båda sidorna av hemplattan i samma inning.[11]
Den 11 september 2013 slog Morales sin 100:e homerun i MLB.[13] Han slutade säsongen med ett slaggenomsnitt på 0,277, 23 homeruns och 80 RBI:s på 156 matcher och var bäst i klubben avseende slaggenomsnitt, hits (167), doubles (34), RBI:s och extra-base hits (57). Efter säsongen erbjöds han ett så kallat qualifying offer av Mariners, innebärande ett ettårskontrakt värt 14,1 miljoner dollar, vilket han dock tackade nej till. Han blev därmed free agent.[14]
Inför 2014 års säsong hade Morales svårt att hitta någon klubb som var intresserad av att skriva kontrakt med honom, delvis på grund av att klubben i så fall måste avstå från ett framtida draftval.[15] När draften var avklarad i början av juni upphörde den begränsningen och Morales kom då överens med Minnesota Twins om ett kontrakt för resten av säsongen värt cirka 7,6 miljoner dollar. Twins tänkte främst använda honom som designated hitter.[16] Efter bara 39 matcher, där han hade ett slaggenomsnitt på 0,234, en homerun och 18 RBI:s, bytte Twins bort honom till hans gamla klubb Seattle Mariners, som var i behov av en duktig slagman.[17]
Morales spelade resten av 2014 års säsong för Mariners, men han spelade svagt. På 59 matcher hade han ett slaggenomsnitt på bara 0,207, sju homeruns och 24 RBI:s. Efter säsongen blev han free agent.
I december 2014 skrev Morales på ett tvåårskontrakt med Kansas City Royals värt åtminstone 17 miljoner dollar och med en möjlighet för båda parter att förlänga kontraktet ytterligare ett år. Royals planerade att främst använda honom som designated hitter.[18] Han spelade bättre 2015 än han gjort på många år och nådde i början av september 100 RBI:s för säsongen, en siffra han inte nått sedan 2009.[19] Den 20 september slog han tre homeruns och en triple i samma match och hade 15 total bases i matchen; den senare siffran var nytt klubbrekord för Royals.[20] Totalt under grundserien hade Morales ett slaggenomsnitt på 0,290, 22 homeruns och 106 RBI:s. Antalet RBI:s var sjätte flest i American League och antalet doubles (41) var fjärde flest. Royals gick sedan hela vägen i slutspelet och vann World Series.[21] Efter säsongen erhöll Morales sin första Silver Slugger Award då han utsågs till den bästa designated hittern i American League. Han erhöll även Edgar Martínez Award, även det ett pris till den bästa designated hittern i American League.[22]
Under 2016 spelade Morales 154 matcher för Royals och hade ett slaggenomsnitt på 0,263, 30 homeruns (hans bästa siffra sedan 2009) och 93 RBI:s. Efter säsongen blev han free agent.
I november 2016 skrev Morales på ett treårskontrakt värt 33 miljoner dollar med Toronto Blue Jays.[23] Den 31 augusti 2017 blev han den första Blue Jays-spelaren någonsin att ha fyra hits, tre homeruns och sju RBI:s i en och samma match.[24] Under 2017 var hans slaggenomsnitt 0,250 och han hade 28 homeruns och 85 RBI:s. Året efter fick han vara pitcher i en match den 20 maj och tillät ingen hit under den inning som han pitchade.[25] I början av juli nådde han milstolpen 200 homeruns som den femte kubanen genom tiderna[26] och i augusti slog han en homerun i sju raka matcher, vilket bara var en match från MLB-rekordet. Ingen Blue Jays-spelare hade tidigare lyckats med detta och bara sex spelare i MLB:s historia.[27] För 2018 var hans slaggenomsnitt 0,249 med 21 homeruns och 57 RBI:s. Just före säsongsinledningen 2019 bytte Blue Jays bort Morales till Oakland Athletics.[28]