Morales hatte in Jugendmannschaften in den Berliner Stadtteilen Wedding und Pankow gespielt, bevor er im Juli 2000 von Hertha BSC für deren Nachwuchsabteilung verpflichtet wurde. Im Jahre 2007 gewann er mit der Poelchau-Oberschule die in Chile ausgetragene Fußball-Schulweltmeisterschaft.[1]
Hertha BSC
Am 8. November 2008 bestritt er sein erstes Spiel im Seniorenbereich, als er für Hertha BSC II in der viertklassigen Regionalliga Nord bei der 2:4-Niederlage im Auswärtsspiel gegen Hannover 96 II mit Einwechslung für Ante Čović zum Einsatz kam. Zwei Jahre später reiste er erstmals mit den Profis ins Sommertrainingslager.[2] Er debütierte am 5. Dezember 2010 (15. Spieltag) im Zweitliga-Spiel beim TSV 1860 München, das mit 0:1 verloren wurde.[3] In der Saison 2011/2012 gab er sein Debüt in der Bundesliga.
FC Ingolstadt 04
Nachdem Morales ein neues Vertragsangebot von Hertha BSC nicht angenommen hatte,[4] wechselte er nach Auslaufen seines Vertrages zur Saison 2013/14 zum FC Ingolstadt 04,[5] für den er 32 von 34 Punktspielen bestritt und ein Tor erzielte. Am 11. April 2014 (30. Spieltag) erzielte er bei der 1:2-Niederlage im Heimspiel gegen den SC Paderborn 07 mit dem Treffer zum 1:0 in der fünften Minute sein erstes Pflichtspieltor für den FC Ingolstadt. Am Saisonende 2014/15 stieg er mit der Mannschaft als Zweitligameister in die Bundesliga auf. Sein Bundesligadebüt gab er am 15. August 2015 (1. Spieltag) beim 1:0-Sieg im Auswärtsspiel gegen den 1. FSV Mainz 05, zu dem er die Vorlage gab. Sein erstes Bundesligator erzielte er am 23. April 2016 (31. Spieltag) beim 2:2-Unentschieden im Heimspiel gegen Hannover 96 mit dem Treffer zum 1:0 per Kopf in der zehnten Minute.
Fortuna Düsseldorf
Zur Saison 2018/19 wechselte Morales zum Bundesliga-Aufsteiger Fortuna Düsseldorf, bei dem er einen Vertrag bis zum 30. Juni 2021 unterschrieb.[6]
New York City FC
Anfang April 2021 wechselte Morales kurz vor dem Beginn der Saison 2021 in die Major League Soccer zum New York City FC, bei dem er einen Vertrag bis zum 31. Dezember 2023 mit der Option auf ein weiteres Jahr unterschrieb.[7] Fortuna Düsseldorf erhielt für den 30-Jährigen, der den Verein nach dem 27. Spieltag der Zweitligasaison 2020/21 verließ und dessen Vertrag am Saisonende ausgelaufen wäre, noch eine Ablöse.[8] Am Ende der Saison 2021 gewann er mit der Mannschaft den MLS Cup.
Nationalmannschaft
Am 3. Januar 2011 wurde Morales, der sich auch für die deutsche oder peruanische Nationalmannschaft hätte entscheiden können, von Nationaltrainer Jürgen Klinsmann in das Aufgebot der Vereinigten Staaten für die Spiele gegen Frankreich und Slowenien nominiert. Sein Debüt in der Nationalmannschaft gab er allerdings erst am 29. Januar 2013 beim torlosen Remis in einem Test-Länderspiel gegen die Auswahl Kanadas in Houston. Anschließend wurde er zunächst für mehr als eineinhalb Jahre nicht mehr berufen und bestritt erst im September 2014 sein zweites Länderspiel. In der folgenden Zeit kam er regelmäßig zum Einsatz und nahm mit der Nationalmannschaft im Sommer 2015 am Gold Cup teil, bei dem er jedoch nur im dritten Gruppenspiel zum Einsatz kam. Nach seinem 13. Länderspiel im Mai 2016 wurde er zunächst für über drei Jahre nicht mehr in den Kader der Nationalmannschaft nominiert, ehe er im Herbst 2019 erneut drei Spiele absolvierte.