Carriera Nella categoria junior si mette in mostra con importanti successi e nel 2015 esordisce nel professionismo con il team Colombia di Claudio Corti. Nel 2016 passa al team Southeast, 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 2018 si trasferisce al team EF Education: in stagione si classifica terzo al Tour of California, valido per il calendario World Tour, e corre il suo primo Tour de France, portandolo a termine. L'anno dopo conquista il titolo nazionale a cronometro, la frazione del Col de Turini alla Parigi-Nizza e la cronometro dei Giochi panamericani a Lima; conclude inoltre terzo al Tour Colombia e secondo al Tour of Guangxi.
Nel 2020, sempre in maglia EF, si aggiudica il prestigioso Giro del Delfinato, 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: 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.
Il 25 settembre, a pochi giorni dal termine del Tour, viene annunciato il suo passaggio alla Ineos a partire dalla stagione 2021. 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, risultando inoltre di fondamentale supporto per Bernal nella conquista del successo finale. Nel 2024 viene ingaggiato dalla Bora: vinto a fine gennaio il quarto titolo nazionale a cronometro in carriera, si aggiudica in salita la seconda e la quinta tappa della Volta ao Algarve, che termina secondo alle spalle di Remco Evenepoel. Nel mese di maggio torna, a tre anni di distanza, al Giro d'Italia: chiude al secondo posto finale, distanziato di quasi 10 minuti dal vincitore Tadej Pogačar, dominatore di quell'edizione, in quello che rappresenta il suo primo podio in un grande Giro.
Palmarès Strada 2013 (Juniores) Campionati panamericani, Prova a cronometro Juniores Campionati colombiani, Prova a cronometro Juniores
2014 (Juniores) Campionati colombiani, Prova a cronometro Juniores
2019 (EF Education First, tre vittorie) Campionati colombiani, Prova a cronometro 7ª tappa Parigi-Nizza (Nizza > Col de Turini) Giochi panamericani, Prova a cronometro
2020 (EF Pro Cycling, quattro vittorie) Campionati colombiani, Prova a cronometro 6ª tappa Tour Colombia (Zipaquirá > El Once-Alto del Verjón) Classifica generale Giro del Delfinato 13ª tappa Tour de France (Châtel-Guyon > Puy Mary)
2022 (Ineos Grenadiers, quattro vittorie) Campionati colombiani, Prova a cronometro 4ª tappa Giro dei Paesi Baschi (Vitoria-Gasteiz > Zamudio) Classifica generale Giro dei Paesi Baschi Coppa Sabatini
2023 (Ineos Grenadiers, una vittoria) Classifica generale Volta ao Algarve
2024 (Bora-Hansgrohe, tre vittorie) Campionati colombiani, Prova a cronometro 2ª tappa Volta ao Algarve (Lagoa > Alto da Fóia) 5ª tappa Volta ao Algarve (Faro > Alto do Malhão)
2026 (Red Bull-Bora-Hansgrohe, una vittoria) 4ª tappa Giro di Croazia (Pola > Fiume)
Altri successi 2015 (Colombia) Classifica scalatori Route du Sud Classifica giovani Tour of Utah
2017 (Wilier Triestina-Selle Italia) Classifica giovani Giro di Turchia
2018 (Team EF Education First-Drapac p/b Cannondale) Classifica giovani Colorado Classic
2019 (EF Education First) 1ª tappa Tour Colombia (Medellín > Medellin, cronosquadre)
2020 (EF Pro Cycling) 1ª tappa Tour Colombia (Tunja > Tunja, cronosquadre) Classifica giovani Giro del Delfinato
2022 (Ineos Grenadiers) Classifica a punti Giro dei Paesi Baschi
2024 (Bora-Hansgrohe) Classifica scalatori Volta ao Algarve
Piazzamenti Grandi Giri
Giro d'Italia 2016: 89º 2017: non partito (17ª tappa) 2021: 5º 2024: 2º 2025: 53º
Tour de France 2018: 36º 2020: 28º 2022: 29º 2023: non partito (15ª tappa)
Vuelta a España 2019: 41º 2020: non partito (4ª tappa) 2024: ritirato (20ª tappa)
Classiche monumento
Milano-Sanremo 2016: 123º 2017: 116º
Liegi-Bastogne-Liegi 2018: 61º 2019: 20º 2020: 20º 2022: 4º 2025: 7º 2026: 42º
Giro di Lombardia 2015: ritirato 2016: 57º 2017: ritirato 2018: 49º 2022: 17º 2024: 29º
Competizioni mondiali
Campionati del mondo Firenze 2013 - Cronometro Juniores: 31º Firenze 2013 - In linea Juniores: 15º Ponferrada 2014 - Cronometro Juniores: 37º Ponferrada 2014 - In linea Juniores: ritirato Doha 2016 - Cronometro Under-23: 30º Doha 2016 - In linea Under-23: 53º Bergen 2017 - Cronometro Under-23: 28º Bergen 2017 - In linea Under-23: 36º Innsbruck 2018 - In linea Elite: ritirato Yorkshire 2019 - Cronometro Elite: 30º Yorkshire 2019 - In linea Elite: 29º Imola 2020 - Cronometro Elite: 18º Imola 2020 - In linea Elite: 31º Zurigo 2024 - In linea Elite: 60º
Giochi olimpici Parigi 2024 - In linea: 25º
UCI World Tour/UCI World Ranking UCI World Ranking 2015: 886º UCI World Ranking 2016: 921º UCI World Ranking 2017: 250º UCI World Tour 2018: 85º UCI World Ranking 2018: 113º UCI World Ranking 2019: 106º UCI World Ranking 2020: 34º UCI World Ranking 2021: 146º UCI World Ranking 2022: 15º UCI World Ranking 2023: 222º UCI World Ranking 2024: 34º
Note
Altri progetti
Collegamenti esterni
Categoria:Vincitori del Giro dei Paesi Baschi Categoria:Vincitori della Coppa Sabatini