Nella categoria junior si mette in mostra con importanti successi e nel 2015 esordisce nel professionismo con il team Colombia di Claudio Corti.[2] Nel 2016 passa al team Southeast,[3] divenuto Wilier Triestina-Southeast nel maggio dello stesso anno: in stagione corre il suo primo Giro d'Italia. Nel 2017 si classifica settimo alla Milano-Torino e vince la classifica giovani al Giro di Turchia, gara World Tour.
Nel 2020, sempre in maglia EF, si aggiudica il prestigioso Giro del Delfinato,[7] conquistando la maglia all'ultima tappa dopo il ritiro di Primož Roglič, leader e dominatore della corsa nelle prime frazioni. Partecipa poi al Tour de France come uno degli uomini di punta della squadra, ma finisce presto fuori classifica anche per i postumi di una caduta occorsagli nella seconda giornata di corsa:[8] cerca quindi più volte la fuga con l'obiettivo di una vittoria parziale, fino a trovarla nella tredicesima tappa, quella con l'arrivo in salita a Puy Mary.[9]
Il 25 settembre, a pochi giorni dal termine del Tour, viene annunciato il suo passaggio alla Ineos a partire dalla stagione 2021.[10] Nel maggio dello stesso anno partecipa al Giro d'Italia, in veste di principale luogotenente del proprio connazionale e capitano Egan Bernal: si posiziona al quinto posto in classifica generale,[11] risultando inoltre di fondamentale supporto per Bernal nella conquista del successo finale.[12] Nel 2024 viene ingaggiato dalla Bora:[13] vinto a fine gennaio il quarto titolo nazionale a cronometro in carriera,[14] si aggiudica in salita la seconda[15] e la quinta tappa[16] della Volta ao Algarve, che termina secondo alle spalle di Remco Evenepoel.[16] Nel mese di maggio torna, a tre anni di distanza, al Giro d'Italia: chiude al secondo posto finale,[17] distanziato di quasi 10 minuti dal vincitore Tadej Pogačar, dominatore di quell'edizione,[18] in quello che rappresenta il suo primo podio in un grande Giro.[19]