Tras empezar a formarse como futbolista en las categorías inferiores del Chelsea F. C., el 15 de mayo de 2016 hizo su debut en un partido de la Premier League contra el Leicester City F. C., tras sustituir a Branislav Ivanović en el minuto 60.
[2] Tras jugar ese único partido durante la temporada 2015-16, se marchó en calidad de cedido durante tres años al Brighton & Hove Albion F. C., Hull City A. F. C. y al Derby County F. C., hasta que finalmente en el mercado veraniego de 2019-20 volvió al Chelsea, debutando el 14 de agosto de 2019 en la final de la Supercopa de la UEFA contra el Liverpool F. C., sustituyendo a Andreas Christensen en el minuto 85.
El 14 de septiembre de 2019 anotó su primer gol con el primer equipo del Chelsea en la victoria por 5-2 ante el Wolverhampton Wanderers.
[3] Tras año y medio como miembro del primer equipo, en enero de 2021 fue cedido al A. C. Milan hasta final de temporada con una opción de compra al final de la misma.
[4] Dicha opción se hizo efectiva en el mes de junio y firmó un nuevo contrato hasta junio de 2025.