Dopo gli inizi in Colombia, si trasferisce inBelgio, venendo acquistato dalClub Bruges. Trasferitosi agli spagnoli delSiviglia, in due anni realizza 49 gol in 108 partite tra tutte le competizioni e vince dueEuropa League (2013-2014 e 2014-2015). Nell'estate 2015 viene acquistato dalMilan, dove resta per due stagioni.[1] Nel 2017 torna in Spagna e gioca prima nelVillarreal, con cui vince un'altra Europa League, e poi nelGranada. Dal 2022 milita nell'Atlético Junior.
ABarranquilla, per aiutare suo padre Gilberto, lavorava comecontrollore sui bus;[2] nel frattempo, la sera continuava a coltivare la passione per il calcio, allenandosi con intensità nel Junior de Barranquilla.[3]
È soprannominatoEl Peluca (Il Parrucca)[4] per la folta capigliatura che aveva da bambino.[5]
Attaccante prolifico e freddo sotto porta,[6] usa prevalentemente il piede destro.[7] Abile neldribbling,[8] nel suo repertorio tecnico figura anche la cosiddettarabona.[9][10] Con l'allenatoreUnai Emery ha aggiunto al proprio stile di gioco una certa propensione alla fase difensiva, che a suo dire lo ha aiutato a trovare più facilmente la via del gol, pur partendo da lontano;[11] ciò nonostante, in qualche occasione è stato criticato per la sua poca partecipazione al gioco di squadra.[12][13]
Bacca in allenamento alClub Bruges nel gennaio del 2013.
Viene ingaggiato dal Barranquilla, squadra di Primo B, per poi tornare nellaserie A colombiana l'anno successivo, quando vince il titolo di capocannoniere con 15 gol. La stagione successiva firma per ilJunior de Barranquilla, la squadra per cui tifa, in cui debutta con due gol nel Torneo di Apertura 2009. Nello stesso anno, in Coppa Colombia diventa capocannoniere con 11 gol. Nel Torneo di Apertura 2010 ha segnato 12 gol, che sono serviti a consacrarlo come capocannoniere del torneo al pari diCarlos Renteria.
Il 17 gennaio 2012 viene acquistato dai belgi delClub Bruges per circa 1,5 milioni di euro.[14][15] Il debutto in Europa avviene il 21 gennaio del 2012 al 68º contro ilMechelen. Nella sua quinta partita con il club belga segna il suo primo gol, al quarto turno di play-off del campionato, siglando la vittoria per 1-0 contro ilGent.
Alla fine della stagione 2012-13 risulta capocannoniere della squadra e del campionato con 25 gol. Per uno dei turni di qualificazione diEuropa League, dopo l'eliminazione del Bruges dai playoff per giocare laChampions League, segna il suo primo gol nel torneo continentale. Il 23 ottobre 2012 è scelto come miglior giocatore del campionato belga nel mese di settembre.
Il 23 luglio 2013 viene ingaggiato dalSiviglia per circa 7 milioni di euro.[16] Il 29 agosto realizza i primi gol con la nuova maglia, una doppietta nei preliminari di ritorno diEuropa League contro loŚląsk Wrocław. Il 25 settembre realizza i suoi primi gol in Liga, una doppietta ai danni delRayo Vallecano (4-1).[17][18]
Resta nelle file del club spagnolo per due stagioni, realizzando complessivamente 49 reti e contribuendo in maniera decisiva ai due trionfi consecutivi inEuropa League, con diverse marcature nelle fasi a eliminazione diretta;[19][20][21][22] degna di nota la doppietta messa a segno nella finalissima dell'edizione2014-2015, vinta battendo per 3-2 ilDnipro.[23] I due successi nella competizione (primi trionfi europei per il giocatore) consentono a Bacca di eguagliare i connazionaliLuis Amaranto Perea eRadamel Falcao García.[24]
Le due affermazioni in campo europeo sono inframmezzate dalla sconfitta in finale diSupercoppa UEFA 2014 contro il Real Madrid, che si impone per 2-0.[25]
L'estate 2015 segna il suo approdo alMilan, squadra da cui viene pagato 30 milioni di euro.[26][27] Il 23 agosto esordisce inA, durante la partita persa dai rossoneri contro laFiorentina.[28] Nella successiva presenza, contro l'Empoli, trova il primo gol nel campionato italiano.[29] In questa stagione risulta il primatista del Milan per presenze e reti.[30] È anche autore della seconda marcatura in underby, contribuendo al successo per 3-0.[31]
A un anno dal debutto segna la sua prima tripletta, decisiva per piegare ilTorino (3-2).[32] Il 23 dicembre 2016 si aggiudica laSupercoppa italiana, primo trofeo con la società lombarda.[33] Ciononostante nel corso della sua seconda stagione in maglia rossonera le sue prestazioni si rivelano spesso inferiori alle attese.[12][13][34]
Nell'estate 2017 fa ritorno in Liga, firmando per ilVillarreal con la formula del prestito secco oneroso (2.5 milioni di €).[35] Durante la prima parte di stagione segna 8 gol[36], 2 dei quali inEuropa League.[37]. Conclude la stagione con 18 gol tra campionato ed Europa league.
Dopo la fine del prestito fa ritorno al Milan, ma il 17 agosto 2018 viene ceduto al Villarreal a titolo definitivo[38] per 7 milioni di €. Con ilSottomarino giallo il 26 maggio 2021, vince la finale diEuropa League (terza personale) contro ilManchester Utd ai rigori.[39] Il 7 luglio2021 risolve il suo contratto con la società spagnola, dopo 144 partite e 43 reti.[40]
Il 13 luglio 2021, Bacca firma per ilGranada, sempre militante in Liga.[41] Con gli andalusi, l'attaccante colleziona 17 presenze incampionato, senza però riuscire ad evitare la retrocessione della squadra inseconda serie a fine stagione.
Rimasto svincolato, il 13 luglio 2022 Bacca fa ufficialmente ritorno in Colombia dopo dieci anni, unendosi all'Atlético Junior, squadra che per prima lo aveva lanciato nel professionismo.[42]
Convocato per laCopa América Centenario del 2016 negliStati Uniti[45], nel secondo incontro della fase a gironi trova la sua prima rete in Copa América, siglando di testa l'1-0 e così contribuendo alla vittoria finale per 2-1 contro ilParaguay.[46]
Convocato per ilmondiale di Russia nel 2018, subentra nel secondo tempo della partita d'esordio persa per 2-1 contro ilGiappone.[47] Salta solo la gara dei gironi colSenegal (vinta per 1-0). Nella gara di ottavi di finale contro l'Inghilterra è autore di un errore, poi rivelatosi decisivo per l'eliminazione dei suoi, dal dischetto nella serie deitiri di rigore.[48] A causa di questo rigore è stato vittima (insieme aMateus Uribe, l'altro colombiano ad aver fallito dagli 11 metri) di minacce di morte.[49][50]