Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Deportes Tolima | 2026/27 | 25 | 0 | 1 |
| Millonarios | 2017/18 – 2025/26 | 173 | 24 | 3 |
| Independiente Medellin | 2024/25 – 2025/26 | 24 | 1 | 1 |
| Lens II | 2019/20 – 2020/21 | 15 | 1 | — |
| Colombia U20 | 2019 | 8 | 0 | — |
| Bogota FC | 2014/15 – 2017/18 | 68 | 17 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 1 Jul 2017 | Bogota FC | Millonarios | — |
| 5 Jul 2025 | Millonarios | Independiente Medellin | Free Transfer |
| 3 Jul 2025 | Millonarios | Independiente Medellin | Free agent |
| 12 Feb 2026 | Independiente Medellin | Deportes Tolima | Free agent |
| 11 Feb 2026 | Independiente Medellin | Deportes Tolima | Free agent |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026/27 | CONMEBOL Libertadores | Deportes Tolima | 6 | 0 | 98 | 0 | 1 | 0 | 0 | 6.48 |
| 2026/27 | Primera A | Deportes Tolima | 19 | 3 | 461 | 0 | 0 | 4 | 0 | 6.57 |
| 2025/26 | CONMEBOL Sudamericana | Millonarios | 1 | 1 | 45 | 0 | 0 | 1 | 0 | 6.20 |
| 2025/26 | Primera A | Millonarios | 13 | 6 | 532 | 3 | 1 | 0 | 0 | 6.95 |
| 2025/26 | Primera A | Independiente Medellin | 15 | 5 | 495 | 0 | 0 | 0 | 0 | 6.51 |
| 2024/25 | Primera A | Millonarios | 14 | 8 | 655 | 1 | 1 | 3 | 0 | 6.90 |
| 2024/25 | Primera A | Independiente Medellin | 9 | 7 | 452 | 1 | 1 | 1 | 0 | 6.90 |
| 2023/24 | Primera A | Millonarios | 22 | 11 | 1202 | 4 | — | 2 | 1 | 7.30 |
| 2023/24 | Copa Colombia | Millonarios | 1 | 0 | 6 | 0 | — | 0 | 0 | — |
| 2023/24 | CONMEBOL Sudamericana | Millonarios | 3 | 1 | 105 | 0 | — | 0 | 0 | 6.80 |
| 2023/24 | Friendlies Clubs | Millonarios | 1 | 0 | 22 | 0 | — | 0 | 0 | — |
| 2023/24 | CONMEBOL Libertadores | Millonarios | 4 | 0 | 90 | 0 | — | 0 | 0 | 6.38 |
| 2022/23 | Primera A | Millonarios | 42 | 13 | 1373 | 7 | — | 6 | 0 | 6.73 |
| 2022/23 | Copa Colombia | Millonarios | 8 | 2 | 229 | 0 | — | 0 | 0 | — |
| 2022/23 | CONMEBOL Libertadores | Millonarios | 2 | 0 | 70 | 0 | — | 0 | 0 | 6.25 |
| 2021/22 | Primera A | Millonarios | 35 | 3 | 562 | 5 | — | 5 | 0 | 6.92 |
| 2021/22 | Copa Colombia | Millonarios | 2 | 1 | 83 | 0 | — | 1 | 0 | — |
| 2019/20 | National 2 - Group D | Lens II | 15 | 7 | 717 | 1 | — | 3 | 0 | — |
| 2019/20 | Primera A | Millonarios | 3 | 0 | 55 | 0 | — | 0 | 0 | 6.63 |
| 2019/20 | Copa Colombia | Millonarios | 5 | 4 | 351 | 4 | — | 1 | 0 | — |
| 2019 | Sudamericano U20 | Colombia U20 | 8 | 4 | 370 | 0 | — | 1 | 0 | — |
| 2018/19 | Primera A | Millonarios | 2 | 2 | 117 | 0 | — | 0 | 0 | 6.55 |
| 2018/19 | CONMEBOL Libertadores | Millonarios | 3 | 2 | 135 | 0 | — | 0 | 0 | 6.63 |
| 2017/18 | Primera A | Millonarios | 10 | 5 | 434 | 0 | 1 | 5 | 0 | 6.54 |
| 2017/18 | Primera B | Bogota FC | 16 | 16 | 1409 | 8 | — | 1 | 0 | — |
| 2017/18 | Copa Colombia | Millonarios | 2 | 1 | 93 | 0 | — | 0 | 0 | — |
| 2017/18 | Copa Colombia | Bogota FC | 5 | 5 | 450 | 2 | — | 0 | 0 | — |
| 2016/17 | Primera B | Bogota FC | 35 | 23 | 2167 | 6 | — | 6 | 0 | — |
| 2016/17 | Copa Colombia | Bogota FC | 4 | 2 | 222 | 1 | — | 0 | 0 | — |
| 2015/16 | Primera B | Bogota FC | 6 | 3 | 273 | 0 | — | 0 | 0 | — |
| 2014/15 | Primera B | Bogota FC | 2 | 2 | 80 | 0 | — | 0 | 0 | — |
Availability history
No injuries or suspensions recorded.
Trophies
| Competition | Season | Place |
|---|---|---|
| Primera A (Colombia) | 2023 | Winner |
| Primera A (Colombia) | 2017 | Winner |
| Primera A (Colombia) | 2021 | 2nd Place |
| Superliga (Colombia) | 2024 | Winner |
| Superliga (Colombia) | 2018 | Winner |
| Copa Colombia (Colombia) | 2022 | Winner |
| Copa Colombia (Colombia) | 2023 | 2nd Place |
| Florida Cup (World) | 2021 | 2nd Place |
