Debuting with Deportivo Cali in 2011, he transferred to Cúcuta Deportivo later that year, and then moved to Cortuluá the following year. While remaining contracted to Cortuluá, in 2013, Borja was loaned to La Equidad before joining Serie A club Livorno for his first experience abroad, followed by a loan to Argentine side Olimpo in 2014. He returned to Colombia in 2015, going on loan to Santa Fe, where he was part of the squad that won both the Superliga Colombiana and the Copa Sudamericana. He eventually returned to Cortuluá in 2016, where he had his breakthrough season, emerging as the top scorer in the league during the Apertura, netting 19 goals, which propelled the team to the semi-finals. In June of that year, he transferred to Colombian giants Atlético Nacional, quickly making an impact by scoring four goals in the 2016 Copa Libertadores semi-finals against São Paulo and netting the decisive winning goal in the final against Independiente del Valle to secure the team's second title in the competition, while also finishing as the top scorer with 8 goals in that year's Copa Colombia; a competition he played between Cortuluá and Nacional. His standout performances earned him a spot in the Copa Libertadores Best XI and the prestigious title of South American Footballer of the Year. In February 2017, Borja transferred to Brazilian side Palmeiras on a five-year deal for a reported fee of $10.5 million, making him the fourth most expensive transfer in Brazilian football history. The following year, he won the Campeonato Brasileiro Série A title, finished as the top scorer in that year’s Campeonato Paulista, and was included in the Campeonato Paulista Team of the Year. In December 2019, Borja signed a one-year loan deal with Atlético Junior, where he played a key role in winning the 2020 Superliga Colombiana, scoring a crucial penalty in the first leg and helping secure a 3–2 aggregate victory over América de Cali. After a brief loan spell with Grêmio in 2021, he rejoined Atlético Junior in 2022. In July 2022, Borja moved to Argentine giants River Plate, where he signed a contract running until December 2025. He achieved his first titles with the club in 2023, winning the Argentine Primera División, Supercopa Argentina, and Trofeo de Campeones.
At youth level, Borja was part of the Colombia under-20 squad that won the 2013 South American Youth Football Championship. He also represented Colombia in the 2016 Rio de Janeiro Olympic Games, reaching the quarter-finals. He made his senior debut for Colombia in November 2016 during a 2018 FIFA World Cup qualifier against Chile and scored his first two goals for the national team the following year in a 4–0 friendly win over China. Borja was included in Colombia’s squad for the 2018 FIFA World Cup and participated in the 2021 Copa América, where his country achieved third place, as well as the 2023 Copa América, where they finished as runners-up.
Club career
Colombia
Borja began his career with Deportivo Cali, making his professional debut in 2011. That same year, he was transferred to Cucuta Deportivo, club in which he had few chances to play. He would soon be transferred again, this time to play for Categoría Primera B side, Cortuluá. Borja would make a name for himself in the second division of Colombia, often being referred to as a 'fast' and 'complete goalscorer', as well as boasting impressive strength on the ball. His impressive performances with Cortuluá eventually led him to becoming an alternative striker for Colombia's national under-20 team in 2013. On 17 January 2013, it was reported that Independiente Medellin had been interested in acquiring Borja's services. However, nothing was finalized and Borja was eventually sold to first division side, La Equidad. In his 2 disputable games, Borja scored 4 goals before being transferred to Serie A side Livorno.
Livorno and Olimpo
During the summer of 2013, it was confirmed that Borja would join Italian club Livorno on loan. The loan consisted of a fee of €150,000 with an option to buy for €1.5 million.[4]
His debut for Le Triglie came on 20 October, coming off the bench in a 1–2 loss to Sampdoria.
Borja made seven season appearances for the club but failed to score a goal. Livorno was eventually regulated to the Serie B after placing last for the season.
Shortly after Livorno were relegated, Borja was sent on loan to Argentine club Club Olimpo, where he scored three in sixteen games.
Return to Colombia
Borja was loaned to Independiente Santa Fe for the second half of 2015. That season, Borja scored ten goals in thirty-three matches. He won the 2015 Copa Sudamericana with the team (he played seven matches with no goals).
For the 2016 season, he was sold to Cortuluá who was 17th in the league the previous season. In the Apertura tournament of the season, Borja scored a record of nineteen goals in twenty-one matches, breaking the record of most goals scored by a player in a league tournament (the previous record was held by Jackson Martínez, with eighteen goals in the 2009 Finalizacion).[5][6] His team Cortuluá reached the Semifinals, which they lost to Independiente Medellín.
He was transferred again on 8 June, this time to Atlético Nacional. On 6 July, during his first match for his new team, while playing against São Paulo in the semi-finals of the Copa Libertadores, he scored twice, a feat he repeated in the second leg a week after. Then, on 27 July 2016, he went on to score the definitive goal in the final series against Ecuadorian team Independiente del Valle, which Atlético Nacional ended up winning 2–1 on the aggregate. At the end of the year, Borja was included in the best 11 of the year.[7]
Palmeiras
On 9 February 2017, it was announced that Borja had agreed to transfer to Brazilian side Palmeiras. He signed a five-year deal for a fee believed to be around US$10.5 million.[8] Borja became the fourth most expensive transfer of Brazilian football.[9]
Junior
On 28 December 2019, Borja signed a one-year loan deal with Atlético Junior.[10] On 8 September 2020, in the first leg of the 2020 Superliga Colombiana, which had been moved from January to September due to the COVID-19 pandemic, Borja scored a penalty in an eventual 2-1 loss against América de Cali.[11] However, this goal later proved to be crucial in the second leg, with Junior winning the second leg 2-0 and winning the title 3-2 on aggregate.[12]
Grêmio
On 5 August 2021, Borja signed with Grêmio until December 2022 on loaned from Palmeiras, and was given the number 9 shirt.[13]
River Plate
On 12 July 2022, Borja signed a contract with Argentine giants River Plate, running until December 2025.[14]