Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Jaguares | 2021/22 – 2026/27 | 67 | 35 | 4 |
| Alianza Valledupar | 2012/13 – 2025/26 | 66 | 24 | 0 |
| Deportes Tolima | 2022/23 – 2023/24 | 9 | 3 | 1 |
| Santa Fe | 2021/22 | 8 | 1 | — |
| Águilas Doradas | 2019/20 – 2020/21 | 30 | 7 | 1 |
| San Lorenzo | 2018/19 – 2019/20 | 11 | 0 | 1 |
| Atletico Nacional | 2012/13 – 2018/19 | 43 | 7 | 2 |
| Cruz Azul | 2018/19 | 13 | 2 | — |
| Querétaro | 2016/17 – 2017/18 | 19 | 2 | 1 |
| Colombia U23 | 2016 | 1 | 0 | — |
| Santos Laguna | 2012/13 – 2015/16 | 132 | 33 | 3 |
| Colombia | 2015 | 2 | 1 | — |
| Colombia U20 | 2013 | 3 | 1 | — |
| Colombia U21 | 2013 | 4 | 1 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 15 Jul 2023 | Deportes Tolima | Alianza Petrolera | — |
| 28 Jun 2022 | Jaguares | Deportes Tolima | — |
| 30 Jul 2021 | Santa Fe | Jaguares | — |
| 1 Jan 2021 | Rionegro Aguilas | Santa Fe | — |
| 26 Jul 2019 | Cruz Azul | Rionegro Aguilas | — |
| 29 Jan 2019 | Cruz Azul | San Lorenzo | Loan |
| 25 Jun 2018 | Atletico Nacional | Cruz Azul | — |
| 20 Jul 2017 | Club Queretaro | Atletico Nacional | — |
| 8 Jun 2016 | Santos Laguna | Club Queretaro | — |
| 1 Jan 2013 | Atletico Nacional | Santos Laguna | — |
| 1 Jul 2012 | Atletico Nacional | Alianza Petrolera | Loan |
| 31 Jan 2025 | Alianza Petrolera | Jaguares | Free agent |
| 16 Feb 2025 | Alianza Petrolera | Jaguares | Free agent |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026/27 | Primera A | Jaguares | 26 | 26 | 2126 | 10 | 3 | 7 | 0 | 6.91 |
| 2025/26 | Primera B | Jaguares | 12 | 12 | 973 | 13 | — | 2 | 0 | — |
| 2025/26 | Primera A | Alianza Valledupar | 1 | 0 | 19 | 0 | 0 | 1 | 0 | 6.30 |
| 2024/25 | Primera A | Alianza Valledupar | 24 | 21 | 1755 | 8 | 0 | 3 | 1 | 7.08 |
| 2024/25 | Copa Colombia | Alianza Valledupar | 2 | 0 | 70 | 0 | — | 0 | 0 | — |
| 2024/25 | CONMEBOL Sudamericana | Alianza Valledupar | 4 | 3 | 286 | 0 | 0 | 1 | 0 | 6.85 |
| 2023/24 | Primera A | Alianza Valledupar | 12 | 6 | 625 | 2 | — | 1 | 0 | 6.75 |
| 2023/24 | Primera A | Deportes Tolima | 2 | 0 | 61 | 1 | — | 0 | 0 | 6.75 |
| 2023/24 | Copa Colombia | Alianza Valledupar | 2 | 1 | 127 | 0 | — | 0 | 0 | — |
| 2022/23 | Primera A | Deportes Tolima | 6 | 2 | 180 | 2 | 1 | 1 | 1 | 6.95 |
| 2022/23 | Primera A | Jaguares | 13 | 13 | 1079 | 6 | 1 | 5 | 0 | 6.95 |
| 2022/23 | Copa Colombia | Deportes Tolima | 1 | 0 | 28 | 0 | — | 0 | 0 | — |
| 2021/22 | Primera A | Jaguares | 15 | 14 | 1164 | 6 | — | 4 | 0 | 7.10 |
| 2021/22 | Primera A | Santa Fe | 7 | 2 | 213 | 1 | — | 1 | 0 | 7.10 |
| 2021/22 | Copa Colombia | Jaguares | 1 | 0 | 32 | 0 | — | 1 | 0 | — |
| 2021/22 | CONMEBOL Libertadores | Santa Fe | 1 | 0 | 22 | 0 | — | 0 | 0 | 6.20 |
| 2020/21 | Primera A | Águilas Doradas | 15 | 13 | 1042 | 4 | — | 1 | 0 | 6.82 |
| 2020/21 | Copa Colombia | Águilas Doradas | 2 | 2 | 129 | 0 | — | 0 | 0 | — |
| 2019/20 | Primera A | Águilas Doradas | 12 | 11 | 1006 | 2 | 1 | 3 | 0 | 7.00 |
| 2019/20 | Copa Colombia | Águilas Doradas | 1 | 1 | 90 | 1 | — | 0 | 0 | — |
| 2019/20 | Copa de la Superliga | San Lorenzo | 3 | 1 | 173 | 0 | — | 0 | 0 | — |
| 2019/20 | CONMEBOL Libertadores | San Lorenzo | 4 | 2 | 165 | 0 | — | 0 | 1 | 6.72 |
| 2018/19 | Liga Profesional Argentina | San Lorenzo | 4 | 3 | 265 | 0 | 1 | 0 | 0 | 6.72 |
| 2018/19 | Liga MX | Cruz Azul | 10 | 2 | 257 | 2 | — | 0 | 0 | 6.83 |
| 2018/19 | Primera A | Atletico Nacional | 17 | 12 | 1100 | 3 | 2 | 1 | 0 | 6.73 |
| 2018/19 | Copa MX | Cruz Azul | 3 | 1 | 107 | 0 | — | 1 | 0 | — |
| 2018/19 | CONMEBOL Libertadores | Atletico Nacional | 4 | 2 | 171 | 0 | — | 0 | 0 | 6.60 |
| 2017/18 | Primera A | Atletico Nacional | 15 | 10 | 978 | 3 | — | 6 | 0 | 6.80 |
| 2017/18 | Copa Colombia | Atletico Nacional | 2 | 1 | 118 | 1 | — | 1 | 0 | — |
| 2016/17 | Liga MX | Querétaro | 12 | 6 | 505 | 1 | 1 | 1 | 0 | 6.73 |
| 2016/17 | Copa MX | Querétaro | 7 | 4 | 327 | 1 | — | 2 | 1 | — |
| 2016 | Olympics Intercontinental Play-offs | Colombia U23 | 1 | 1 | 62 | 0 | — | 0 | 0 | — |
| 2015/16 | Liga MX | Santos Laguna | 27 | 20 | 1883 | 4 | 3 | 6 | 0 | 7.06 |
| 2015/16 | Concacaf Champions Cup | Santos Laguna | 5 | 2 | 196 | 1 | — | 2 | 0 | — |
| 2015 | Friendlies | Colombia | 2 | 0 | 40 | 1 | — | 0 | 0 | — |
| 2014/15 | Liga MX | Santos Laguna | 38 | 33 | 2884 | 11 | — | 9 | 0 | — |
| 2014/15 | Copa MX | Santos Laguna | 13 | 5 | 639 | 7 | — | 2 | 0 | — |
| 2014/15 | CONMEBOL Libertadores | Santos Laguna | 7 | 5 | 403 | 2 | — | 1 | 1 | — |
| 2013/14 | Liga MX | Santos Laguna | 25 | 14 | 1449 | 6 | — | 1 | 0 | — |
| 2013/14 | Copa MX | Santos Laguna | 3 | 3 | 182 | 0 | — | 1 | 0 | — |
| 2013 | FIFA U20 World Cup | Colombia U20 | 3 | 3 | 222 | 1 | — | 2 | 0 | — |
| 2013 | Tournoi Maurice Revello | Colombia U21 | 4 | 4 | 311 | 1 | — | 0 | 0 | — |
| 2012/13 | Liga MX | Santos Laguna | 13 | 5 | 570 | 2 | — | 1 | 0 | — |
| 2012/13 | Primera B | Alianza Valledupar | 21 | 19 | 1676 | 14 | — | 5 | 0 | — |
| 2012/13 | Primera A | Atletico Nacional | 2 | 0 | 25 | 0 | — | 0 | 0 | — |
| 2012/13 | Copa Colombia | Atletico Nacional | 3 | 1 | 110 | 0 | — | 0 | 0 | — |
| 2012/13 | Concacaf Champions Cup | Santos Laguna | 1 | 0 | 18 | 0 | — | 0 | 0 | — |
Availability history
No injuries or suspensions recorded.
Trophies
| Competition | Season | Place |
|---|---|---|
| Primera B (Colombia) | 2012 | Winner |
| Liga MX (Mexico) | 2014/2015 | Winner |
| Copa MX (Mexico) | 2016/2017 | Winner |
| Copa MX (Mexico) | 2014/2015 | Winner |
| Campeón de Campeones (Mexico) | 2015 | Winner |
| Superliga (Colombia) | 2018 | 2nd Place |
| Primera A (Colombia) | 2022 | 2nd Place |
| Concacaf Champions Cup (N/C America) | 2012/2013 | 2nd Place |
| Tournoi Maurice Revello (World) | 2013 | 2nd Place |
| Olympics Intercontinental Play-offs (World) | 2016 | Winner |
| Florida Cup (World) | 2018 | Winner |
