Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Atletico Nacional | 2016/17 – 2026/27 | 107 | 26 | 11 |
| America de Cali | 2023/24 – 2024/25 | 45 | 13 | 2 |
| Vizela | 2021/22 – 2022/23 | 13 | 1 | 0 |
| Bucaramanga | 2021/22 – 2022/23 | 11 | 4 | 1 |
| Alianza Valledupar | 2020/21 | 5 | 0 | — |
| Cucuta | 2019/20 | 17 | 0 | — |
| Royal Excel Mouscron | 2018/19 | 5 | 0 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 6 Jul 2024 | America de Cali | Atletico Nacional | — |
| 1 Jan 2023 | Vizela | America de Cali | — |
| 18 Jan 2022 | Bucaramanga | Vizela | — |
| 1 Jan 2021 | Atletico Nacional | Bucaramanga | Loan |
| 1 Jan 2020 | Atletico Nacional | Alianza Petrolera | Loan |
| 13 Jul 2019 | Atletico Nacional | Cucuta | Loan |
| 1 Jan 2019 | Royal Excel Mouscron | Atletico Nacional | — |
| 1 Jul 2018 | Atletico Nacional | Royal Excel Mouscron | — |
| 1 Jul 2016 | Royal Excel Mouscron | Atletico Nacional | Loan |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026/27 | CONMEBOL Sudamericana | Atletico Nacional | 1 | 1 | 58 | 0 | 0 | 0 | 0 | 6.90 |
| 2026/27 | Primera A | Atletico Nacional | 35 | 23 | 1973 | 10 | 6 | 0 | 1 | 6.85 |
| 2025/26 | Primera A | Atletico Nacional | 24 | 21 | 1383 | 6 | 4 | 2 | 0 | 6.99 |
| 2025/26 | Copa Colombia | Atletico Nacional | 8 | — | — | 4 | 0 | 1 | 0 | — |
| 2025/26 | Superliga | Atletico Nacional | 1 | — | — | 0 | 0 | 0 | 0 | — |
| 2025/26 | CONMEBOL Libertadores | Atletico Nacional | 5 | 3 | 105 | — | 0 | 1 | 0 | 6.34 |
| 2024/25 | Primera A | Atletico Nacional | 16 | 14 | 799 | 3 | 1 | 1 | 0 | 6.92 |
| 2024/25 | Primera A | America de Cali | 7 | 5 | 268 | 1 | — | 0 | 0 | 6.77 |
| 2024/25 | Copa Colombia | Atletico Nacional | 7 | — | — | 1 | 0 | 3 | 0 | — |
| 2024/25 | CONMEBOL Sudamericana | America de Cali | 1 | 1 | 58 | — | — | 0 | 0 | 6.70 |
| 2023/24 | Primera A | America de Cali | 35 | 29 | 2053 | 12 | 2 | 2 | 0 | 6.94 |
| 2023/24 | Copa Colombia | America de Cali | 2 | — | — | 0 | 0 | 0 | 0 | — |
| 2022/23 | Primeira Liga | Vizela | 4 | 2 | 42 | — | — | 0 | 1 | 6.10 |
| 2022/23 | Taça de Portugal | Vizela | 2 | — | — | 1 | 0 | 0 | 0 | — |
| 2021/22 | Primeira Liga | Vizela | 7 | 5 | 128 | — | — | 0 | 0 | 6.24 |
| 2021/22 | Primera A | Bucaramanga | 11 | 9 | 802 | 4 | 1 | 0 | 0 | 7.04 |
| 2020/21 | Copa Colombia | Alianza Valledupar | 2 | 2 | 174 | 0 | — | 0 | 0 | — |
| 2020/21 | Primera A | Alianza Valledupar | 3 | 0 | 90 | — | — | 0 | 0 | 6.67 |
| 2019/20 | Primera A | Cucuta | 17 | 11 | 911 | 0 | — | 5 | 0 | 6.50 |
| 2019/20 | Primera A | Atletico Nacional | 2 | 1 | 89 | 0 | — | 0 | 0 | 6.50 |
| 2018/19 | Jupiler Pro League | Royal Excel Mouscron | 4 | 3 | 225 | 0 | — | 0 | 0 | — |
| 2018/19 | Primera A | Atletico Nacional | 2 | 0 | 5 | 1 | — | 0 | 0 | 7.70 |
| 2018/19 | Cup | Royal Excel Mouscron | 1 | 1 | 75 | 0 | — | 0 | 0 | — |
| 2017/18 | Primera A | Atletico Nacional | 2 | 0 | 9 | 0 | — | 0 | 0 | 6.70 |
| 2017/18 | Copa Colombia | Atletico Nacional | 1 | 1 | 90 | 1 | — | 0 | 0 | — |
| 2016/17 | Primera A | Atletico Nacional | 3 | 1 | 93 | 0 | — | 0 | 0 | 6.40 |
Availability history
| Reason | From | Until | Days |
|---|---|---|---|
| Red Card | 27 Aug 2022 | 29 Aug 2022 | 2 |
Trophies
| Competition | Season | Place |
|---|---|---|
| Copa Colombia (Colombia) | 2024 | Winner |
| Copa Colombia (Colombia) | 2016 | Winner |
| Primera A (Colombia) | 2024 | Winner |
| Primera A (Colombia) | 2017 | Winner |
| Superliga (Colombia) | 2025 | Winner |
| Superliga (Colombia) | 2018 | 2nd Place |
| CONMEBOL Libertadores (South America) | 2016 | Winner |
| CONMEBOL Sudamericana (South America) | 2016 | 2nd Place |
| CONMEBOL Recopa (South America) | 2017 | Winner |
| Florida Cup (World) | 2018 | Winner |
