Почав займатися футболом у місцевій команді «Расінг» (Гуакарі), а 2019 року приєднався до структури «Атлетіко Насьйональ». 2022 року був переведений до першої команди, за яку дебютував 28 лютого в матчі Категорії Прімера A (Апертура) проти клубу «Атлетіко Букараманга»[1]. У своєму дебютному сезоні в «Атлетіко» зіграв 6 поєдинків та став чемпіоном Колумбії (Апертура).
В лютому 2023 року в складі «Атлетіко» став переможцем Суперліги Колумбії, зігравши в обох матчах проти клубу «Депортіво Перейра»[2]. 25 травня 2023 року дебютував у Кубку Лібертадорес у матчі проти перуанського «Мельгара», в якому був вилучений з поля в другому таймі[3]. Всього в сезоні 2023 провів 38 матчів за клуб.
«Жирона»
1 вересня 2023 року перейшов в іспанський клуб «Жирона», підписавши п'ятирічний контракт[4][5], а сума трансферу становила 6 млн євро[6]. 27 вересня дебютував за «Жирону», вийшовши на заміну Віктору Циганкову в матчі Ла-Ліги проти «Вільярреала»[7][8]. У своєму дебютному сезоні провів 22 зустрічі за «Жирону».
18 вересня 2024 року в матчі загального етапу Ліги чемпіонів УЄФА проти французького «Парі Сен-Жермен» дебютував у єврокубках[9][10]. 11 січня 2025 року в поєдинку Ла-Ліги проти «Алавеса» забив свій перший гол за «Жирону», а також у професіональній кар'єрі[11].