Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Alianza Valledupar | 2023/24 – 2026/27 | 69 | 14 | 4 |
| Independiente Medellin | 2009/10 – 2024/25 | 184 | 25 | 6 |
| Deportivo Tachira FC | 2024/25 | 14 | 3 | 0 |
| Águilas Doradas | 2024/25 | 13 | 1 | — |
| Toluca | 2018/19 – 2021/22 | 47 | 7 | 4 |
| Pachuca | 2019/20 – 2020/21 | 37 | 2 | 5 |
| Olympiacos | 2015/16 – 2018/19 | 73 | 15 | 6 |
| Colombia | 2016 – 2018 | 4 | 1 | 0 |
| Nantes | 2016/17 | 14 | 1 | — |
| Braga | 2013/14 – 2014/15 | 73 | 19 | 1 |
| SC Braga B | 2014/15 | 1 | 1 | — |
| Deportivo Cali | 2009/10 | 17 | 2 | — |
| Huila | 2008/09 | 0 | 0 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 15 Jul 2024 | Rionegro Aguilas | Deportivo Tachira FC | — |
| 8 Feb 2024 | Independiente Medellin | Rionegro Aguilas | — |
| 1 Jan 2022 | Toluca | Independiente Medellin | — |
| 1 Jul 2021 | Pachuca | Toluca | — |
| 1 Jul 2020 | Toluca | Pachuca | Loan |
| 2 Jan 2019 | Olympiakos Piraeus | Toluca | — |
| 1 Jul 2017 | Nantes | Olympiakos Piraeus | — |
| 11 Jan 2017 | Olympiakos Piraeus | Nantes | Loan |
| 18 Jul 2015 | SC Braga | Olympiakos Piraeus | € 2M |
| 1 Jul 2013 | Independiente Medellin | SC Braga | € 700K |
| 25 Jan 2025 | Deportivo Tachira FC | Alianza Petrolera | Free Transfer |
| 13 Jul 2024 | Rionegro Aguilas | Deportivo Tachira FC | Free agent |
| 23 Jan 2025 | Deportivo Tachira FC | Alianza Valledupar | Free agent |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026/27 | Primera A | Alianza Valledupar | 29 | 21 | 1610 | 4 | 3 | 6 | 0 | 6.66 |
| 2025/26 | Primera A | Alianza Valledupar | 26 | 22 | 1317 | 7 | 0 | 2 | 0 | 6.82 |
| 2024/25 | Primera División | Deportivo Tachira FC | 14 | — | — | 3 | 0 | 2 | 0 | — |
| 2024/25 | Primera A | Águilas Doradas | 12 | 10 | 515 | 1 | — | 0 | 0 | 6.77 |
| 2024/25 | CONMEBOL Libertadores | Águilas Doradas | 1 | 0 | 1 | — | — | 0 | 0 | — |
| 2023/24 | Primera A | Alianza Valledupar | 14 | 12 | 739 | 3 | 1 | 2 | 0 | 6.69 |
| 2023/24 | Primera A | Independiente Medellin | 14 | 12 | 739 | 3 | 1 | 2 | 0 | 6.69 |
| 2023/24 | CONMEBOL Libertadores | Independiente Medellin | 5 | 4 | 333 | — | — | 1 | 0 | 6.62 |
| 2022/23 | Primera A | Independiente Medellin | 39 | 32 | 2465 | 5 | 4 | 5 | 1 | 6.75 |
| 2022/23 | Copa Colombia | Independiente Medellin | 3 | — | — | 0 | 0 | 0 | 0 | — |
| 2022/23 | CONMEBOL Sudamericana | Independiente Medellin | 5 | 5 | 236 | — | 1 | 0 | 0 | 6.84 |
| 2021/22 | Liga MX | Toluca | 3 | 1 | 96 | — | — | 0 | 0 | 6.53 |
| 2020/21 | Liga MX | Pachuca | 37 | 32 | 2276 | 2 | 5 | 3 | 1 | 6.76 |
| 2020/21 | Copa por México | Toluca | 1 | — | — | 0 | 0 | 0 | 0 | — |
| 2019/20 | Liga MX | Toluca | 27 | 25 | 2190 | 3 | 3 | 4 | 0 | 6.84 |
| 2019/20 | Copa MX | Toluca | 5 | — | — | 1 | 0 | 0 | 0 | — |
| 2019/20 | CONCACAF Champions League | Toluca | 1 | — | — | 0 | 0 | 0 | 0 | — |
| 2018/19 | Liga MX | Toluca | 10 | 8 | 748 | 3 | 1 | 5 | 0 | 7.05 |
| 2018/19 | Cup | Olympiacos | 2 | 1 | 97 | 0 | — | 1 | 0 | — |
| 2018/19 | Club Friendlies | Olympiacos | 1 | 0 | 20 | 0 | — | 0 | 0 | — |
| 2018 | World Cup - Qualification South America | Colombia | 1 | 0 | 5 | 0 | — | 0 | 0 | — |
| 2018/19 | Super League 1 | Olympiacos | 1 | — | — | 0 | 0 | 0 | 0 | — |
| 2018 | World Cup | Colombia | 1 | — | — | 0 | 0 | 0 | 0 | — |
| 2017/18 | Super League 1 | Olympiacos | 20 | — | — | 2 | 1 | 5 | 0 | — |
| 2017/18 | Cup | Olympiacos | 2 | — | — | 0 | 0 | 0 | 0 | — |
| 2017/18 | UEFA Champions League | Olympiacos | 7 | 3 | 315 | 2 | — | 1 | 0 | 6.91 |
| 2017 | Friendlies | Colombia | 2 | — | — | 1 | 0 | 0 | 0 | — |
| 2016/17 | Ligue 1 | Nantes | 13 | 10 | 584 | 1 | — | 3 | 0 | 6.45 |
| 2016/17 | Super League 1 | Olympiacos | 7 | — | — | 0 | 0 | 0 | 0 | — |
| 2016/17 | Coupe de France | Nantes | 1 | 1 | 69 | — | — | 0 | 0 | 6.80 |
| 2016/17 | Cup | Olympiacos | 2 | — | — | 3 | 0 | 0 | 0 | — |
| 2016/17 | UEFA Europa League | Olympiacos | 2 | — | — | 0 | 2 | 1 | 0 | — |
| 2015/16 | Super League 1 | Olympiacos | 21 | — | — | 4 | 2 | 1 | 0 | — |
| 2015/16 | Cup | Olympiacos | 2 | — | — | 1 | 0 | 0 | 0 | — |
| 2015/16 | UEFA Champions League | Olympiacos | 6 | 5 | 434 | 3 | 1 | 0 | 0 | 6.95 |
| 2014/15 | Segunda Liga | SC Braga B | 1 | 0 | 34 | 1 | — | 1 | 0 | — |
| 2014/15 | Primeira Liga | Braga | 26 | — | — | 7 | 1 | 7 | 0 | — |
| 2014/15 | League Cup | Braga | 1 | — | — | 0 | 0 | 0 | 0 | — |
| 2014/15 | Taça de Portugal | Braga | 6 | — | — | 3 | 0 | 2 | 0 | — |
| 2013/14 | Copa Colombia | Independiente Medellin | 6 | 5 | 501 | 0 | — | 2 | 0 | — |
| 2013/14 | Primeira Liga | Braga | 30 | — | — | 7 | 0 | 4 | 0 | — |
| 2013/14 | Liga Postobon | Independiente Medellin | 9 | — | — | 2 | 0 | 6 | 1 | — |
| 2013/14 | Taça de Portugal | Braga | 4 | — | — | 1 | 0 | 2 | 0 | — |
| 2013/14 | League Cup | Braga | 4 | — | — | 1 | 0 | 0 | 0 | — |
| 2013/14 | Europa League | Braga | 2 | — | — | 0 | 0 | 0 | 0 | — |
| 2012/13 | Copa Colombia | Independiente Medellin | 4 | 3 | 279 | 2 | — | 0 | 0 | — |
| 2012/13 | Liga Postobon | Independiente Medellin | 10 | — | — | 5 | 0 | 7 | 1 | — |
| 2011/12 | Primera A | Independiente Medellin | 24 | 10 | 1225 | 1 | — | 4 | 0 | — |
| 2011/12 | Copa Colombia | Independiente Medellin | 4 | 4 | 319 | 2 | — | 0 | 1 | — |
| 2010/11 | Primera A | Independiente Medellin | 34 | 27 | 2303 | 1 | — | 10 | 1 | — |
| 2010/11 | CONMEBOL Libertadores | Independiente Medellin | 6 | 6 | 522 | 1 | — | 0 | 0 | — |
| 2009/10 | Primera A | Independiente Medellin | 21 | 9 | 1452 | 3 | — | 8 | 0 | — |
| 2009/10 | Primera A | Deportivo Cali | 17 | 6 | 780 | 2 | — | 7 | 0 | — |
Availability history
No injuries or suspensions recorded.
Trophies
No trophies recorded.
