Real Madrid
Morata fichó por el Real Madrid en 2008 procedente del vecino Getafe tras iniciarse en el Atlético Madrid, y apareció en el Real Madrid C siendo aún juvenil. En julio de 2010, tras una exitosa temporada con el Juvenil A, donde ganó dos títulos juveniles y marcó 34 goles, fue ascendido al Real Madrid Castilla, el equipo reserva del Real. Ese mismo mes, el entrenador del primer equipo, José Mourinho, se llevó a Morata y a cuatro de sus compañeros a una gira de pretemporada por Estados Unidos.
El 15 de agosto de 2010, Morata debutó con el Castilla en un partido amistoso con el Alcorcón, marcando el único gol del encuentro. El 29 de agosto debutó en Segunda División B, en una victoria por 3-2 ante el Coruxo, y el 31 de octubre marcó su primer gol en competición en un empate a uno ante el Alcalá.
El 12 de diciembre de 2010, Morata debutó con el primer equipo al sustituir a Ángel Di María en el minuto 88 de la victoria por 3-1 en Liga ante el Real Zaragoza. Diez días después se estrenó en la Copa del Rey, de nuevo saliendo desde el banquillo en los últimos minutos. En enero de 2011, tras la lesión de Gonzalo Higuaín, los medios españoles esperaban que Morata fuera su sustituto en la plantilla principal. Mourinho, sin embargo, lo rechazó, diciendo que «Morata aún no está preparado para ser titular en el Madrid. Se entrena con nosotros, pero tiene que seguir aprendiendo con el Castilla». En este periodo, Morata marcó cinco goles en cuatro partidos con el filial, mientras que Emmanuel Adebayor fue fichado para sustituir a Higuaín en el primer equipo.
El 13 de febrero de 2011, Morata marcó el primer triplete de su carrera, en una victoria por 7-1 contra el Deportivo Fabril. Terminó su primera temporada como sénior con 14 goles en la Liga -máximo goleador de la plantilla junto a Joselu-, pero el Castilla no logró el ascenso en el play-off.
Morata marcó su primer gol en competición con el primer equipo de la Real el 11 de noviembre de 2012, entrando en el minuto 83 y marcando el gol de la victoria a los 60 segundos en la victoria a domicilio por 2-1 ante el Levante. En su primer partido oficial, en casa contra el Rayo Vallecano el 17 de febrero del año siguiente, marcó el primer gol a los tres minutos, pero fue sustituido antes de la media hora de juego para dar paso a Raúl Albiol, tras la expulsión de Sergio Ramos en la victoria por 2-0 en casa.
El 2 de marzo de 2013, Morata jugó los 90 minutos de El Clásico contra el Barcelona, asistiendo a Karim Benzema para que marcara el primer gol de la victoria por 2-1 en casa. En la temporada siguiente, se convirtió en un miembro habitual de la plantilla del primer equipo a las órdenes del nuevo entrenador Carlo Ancelotti, pero expresó su deseo de contar con más minutos durante el periodo de traspasos de enero.
El 18 de marzo de 2014, Morata marcó su primer gol en la Liga de Campeones, el tercero en la victoria por 3-1 ante el Schalke 04 en el Santiago Bernabéu en los octavos de final. El 17 de mayo, en el último partido de la campaña liguera, marcó dos goles de última hora contra el Espanyol para ayudar a la Real a ganar 3-1 en casa, y terminar con ocho goles en la competición. También participó en la victoria del club en la final de la Liga de Campeones de la UEFA contra el Atlético de Madrid, jugando los últimos diez minutos del tiempo reglamentario y la prórroga tras sustituir a Benzema.
Juventus
El 19 de julio de 2014, la Juventus anunció que había llegado a un acuerdo por la cantidad de 20 millones de euros para el traspaso de Morata, que firmó un contrato de cinco años, teniendo el Real Madrid una opción de recompra en el futuro. Debutó en la Serie A el 13 de septiembre, sustituyendo a Fernando Llorente en el último minuto de la victoria por 2-0 en casa contra el Udinese; dos semanas más tarde volvió a salir en lugar de su compatriota, y marcó de cabeza su primer gol con su nuevo club en la victoria por 3-0 en el campo del Atalanta.
El 5 de octubre de 2014, en la victoria por 3-2 en casa contra la Roma, Morata salió como suplente y fue expulsado por una falta sobre Kostas Manolas, que fue expulsado por tomar represalias. El 9 de noviembre marcó dos goles en la goleada por 7-0 al Parma, y Llorente -al que sustituyó en el minuto 71- añadió otros dos. El 22 de diciembre, Morata entró en los últimos diez minutos de la Supercoppa Italiana contra el Nápoles en Doha (Catar) y marcó en la tanda de penaltis que la Juventus perdió por 5-6.
El 28 de enero de 2015, Morata jugó los últimos 13 minutos del partido de la Coppa Italia contra el Parma y marcó el único gol del partido en el estadio Ennio Tardini para clasificarse para las semifinales. Al mes siguiente, en casa contra el Borussia Dortmund en los octavos de final de la Liga de Campeones, marcó el gol de la victoria en el minuto 43 del partido de ida; también fue titular y vio puerta en el partido de vuelta, ayudando a la Juve a ganar 3-0 en el Westfalenstadion.
El 7 de abril de 2015, Morata fue expulsado por una falta sobre Alessandro Diamanti cuando la Juventus derrotó a la Fiorentina en la semifinal de la Copa, perdiéndose así la final. Una semana más tarde, ganó un penalti en el partido de ida de los cuartos de final de la Liga de Campeones contra el Mónaco, que fue transformado por Arturo Vidal en la victoria local por 1-0. En la ida de las semifinales, contra el Real Madrid, adelantó a los anfitriones con un golazo en el minuto 8, y el partido terminó con una victoria por 2-1 en casa, y repitió la hazaña en el partido de vuelta, en ambas ocasiones sin celebrar el gol contra su antiguo club. El 6 de junio, en la final contra el Barcelona en Berlín, marcó el gol del empate al principio de la segunda parte de la derrota por 1-3.
A principios de agosto de 2015, Morata fue descartado durante un mes debido a un desgarro del músculo sóleo de la pantorrilla izquierda durante un entrenamiento, y se quedó fuera de la Supercopa Italiana 2015. En su segunda aparición tras su regreso, el 15 de septiembre, jugó 85 minutos y marcó el gol de la victoria por 2-1 ante el Manchester City en la fase de grupos de la Liga de Campeones. El 30 de septiembre, marcó para ayudar a derrotar al Sevilla por 2-0 en el Juventus Stadium, su quinto gol en otros tantos partidos en la competición, igualando el récord de Alessandro Del Piero. El 24 de noviembre, fue nominado al Equipo del Año de la UEFA.
El 10 de diciembre de 2015, Morata firmó una ampliación de contrato hasta 2020. El 20 de marzo de 2016, en el Derby della Mole a domicilio ante su vecino el Torino, salió del banquillo en la primera parte y marcó dos goles en la victoria por 4-1. El 21 de mayo, volvió a salir del banquillo para marcar el gol de la victoria en el minuto 20 de la prórroga para ganar la final de la Coppa Italia por 1-0 contra el A.C. Milan en el Estadio Olímpico de Roma.
Retorno al Real Madrid
El 21 de junio de 2016, el Real Madrid ejerció su cláusula de recompra para volver a fichar a Morata de la Juventus por 30 millones de euros. Su primera aparición en competición fue el 9 de agosto, ya que fue titular en la victoria por 3-2 ante su compatriota Sevilla en la Supercopa de la UEFA 2016, siendo sustituido por Benzema a los 62 minutos. Su primer gol llegó en la victoria por 2-1 en casa contra el Celta el 27 de agosto.
El 5 de abril de 2017, Morata se benefició de las rotaciones del técnico Zinedine Zidane y marcó tres goles en la victoria por 4-2 a domicilio contra el Leganés para mantener a su equipo dos puntos por encima del Barcelona con un partido menos. A pesar de pasar la mayor parte de la temporada como suplente de Benzema, marcó 15 goles en la liga y el club se coronó campeón por primera vez en cinco años. Además, marcó tres goles en nueve apariciones en la Liga de Campeones de la UEFA, que el Real Madrid ganó por segundo año consecutivo.
Chelsea
Temporada 2017-18
El 19 de julio de 2017, el Chelsea anunció que había acordado los términos con el Real Madrid para el traspaso de Morata, por una tarifa récord del club, según se informa, de unos 60 millones de libras. El 21 de julio, pasó con éxito el reconocimiento médico y se convirtió oficialmente en jugador del Chelsea.
Morata debutó en competición en el partido de la FA Community Shield de 2017 contra el Arsenal, entrando como suplente en el minuto 74 cuando su equipo perdió en los penaltis tras empatar 1-1 en el tiempo reglamentario, fallando Morata en la tanda. El 12 de agosto de 2017, marcó y dio una asistencia a David Luiz en su primera aparición en la Premier League, una derrota por 2-3 en casa ante el Burnley -su gol fue de cabeza en el minuto 69 del partido para recortar la desventaja a 3-1-. El 23 de septiembre, marcó su primer hat-trick con el Chelsea en una victoria a domicilio por 4-0 contra el Stoke City; esto le convirtió en el decimoséptimo jugador del Chelsea en marcar un hat-trick en la Premier League.
El 5 de noviembre de 2017, Morata marcó en la derrota por 1-0 en casa del Manchester United, entrenado por su antiguo jefe Mourinho. El 26 de diciembre elevó su cuenta liguera a diez goles, ayudando al Chelsea a ganar por 2-0 al Brighton &Hove Albion, también en Stamford Bridge.
El 17 de enero de 2018, Morata fue expulsado tras recibir una amonestación por tirarse al suelo, y otra segundos después por disentir, en una victoria en la tercera ronda de la FA Cup contra el Norwich City. Terminó su primer año con 15 goles en todas las competiciones, y los Blues terminaron quintos en la tabla de la liga.
Temporada 2018-19
Morata abrió su cuenta para la siguiente campaña el 18 de agosto de 2018, anotando el segundo gol en una victoria por 3-2 en casa contra el Arsenal. El 4 de octubre, marcó el gol de la victoria por 1-0 ante el MOL Vidi en la fase de grupos de la UEFA Europa League. Un mes después, marcó dos goles para ayudar a vencer al Crystal Palace por 3-1 en un partido de liga en casa.
Atlético Madrid
Temporada 2018-19
El 27 de enero de 2019, Morata regresó al Atlético Madrid después de 12 años, uniéndose al club en un acuerdo de préstamo de 18 meses. Debutó en liga el 3 de febrero, en una derrota a domicilio por 0-1 ante el Real Betis. Marcó su primer gol el 24 de febrero, en una victoria por 2-0 en casa contra el Villarreal.
El 6 de julio de 2019, el Atlético Madrid confirmó el fichaje definitivo de Morata procedente del Chelsea y se incorporaría oficialmente al club el 1 de julio de 2020, por una cantidad que rondaría los 58 millones de libras.
Temporada 2019-20
El 18 de agosto de 2019, Morata marcó el único gol de la victoria del Atlético Madrid en su estreno en la Liga contra el Getafe. El 1 de octubre de 2019, Morata marcó su partido profesional número 300 con una asistencia para el primer gol del partido en la victoria a domicilio por 2-0 contra el Lokomotiv de Moscú ruso. El 22 de octubre, marcó su primer gol en la Liga de Campeones con el Atlético al rematar de cabeza un centro de Renan Lodi para marcar el único gol del partido en la victoria por 1-0 en casa contra el Bayer Leverkusen alemán. Esto también le convirtió en el primer jugador en marcar tanto para el Real Madrid como para el Atlético en la Liga de Campeones. El 11 de marzo de 2020, en el partido de vuelta de los octavos de final de la Liga de Campeones contra el vigente campeón, el Liverpool, Morata entró como suplente en los últimos minutos de la prórroga y marcó el último gol del partido en la victoria visitante por 3-2, ganando así la eliminatoria por 4-2 en el global, asegurando la clasificación de su equipo para los cuartos de final de la competición.
Regreso a la Juventus
Temporada 2020-21
Morata regresó a la Juventus el 22 de septiembre de 2020, en una cesión de un año por valor de 10 millones de euros, con una opción de compra de 45 millones. La Juventus también se reserva el derecho de extender el préstamo por un año más por otros 10 millones de euros; en este caso, la opción de compra es de 35 millones de euros. El 27 de septiembre, en el empate a domicilio contra la Roma (2-2), hizo su primera aparición con el club desde su regreso, el 17 de octubre, en el empate a domicilio contra el Crotone (1-1). El 20 de octubre, Morata marcó un doblete en el partido de la fase de grupos de la Liga de Campeones de la UEFA contra el Dinamo de Kiev, a domicilio, por 2-0. El 28 de octubre, se le anularon tres goles por fuera de juego contra el Barcelona en un partido de la fase de grupos de la Liga de Campeones, que la Juventus perdió por 2-0 en casa.