Sako debuteerde op de laatste speeldag van het seizoen 2005/06 in het betaald voetbal in het shirt van LB Châteauroux. Daarmee speelde hij die dag een wedstrijd in de Ligue 2 tegen SC Bastia. In drie seizoenen scoorde hij negen doelpunten in 68 competitiewedstrijden voor Châteauroux. Sako tekende in juli 2009 een vierjarig contract bij Saint-Étienne, dan actief in de Ligue 1. De club drie miljoen euro voor hem.[bron?] In drie seizoenen speelde hij 106 competitieduels voor Les Verts, waarin hij twaalf doelpunten scoorde.
Saint-Étienne verkocht Sako in augustus 2012 voor 3,8 miljoen euro verkocht aan Wolverhampton Wanderers, waar hij een driejarig contract ondertekende.[bron?] Sako scoorde bij zijn debuut, op 30 augustus 2012 in de League Cup tegen Northampton Town. Hij degradeerde dat seizoen met Wolverhampton uit de Championship, maar keerde daarin een jaar later dankzij een kampioenschap in de League One terug.
Sako tekende in augustus 2015 een contract tot medio 2018 bij Crystal Palace, de nummer tien van de Premier League in het voorgaande seizoen. Dat nam hem transfervrij over.[2] Sako maakte op 22 augustus 2015 zijn debuut voor Crystal Palace, in een met 2-1 gewonnen competitiewedstrijd thuis tegen Aston Villa. Daarbij maakte hij in de 87ste minuut zijn eerste doelpunt voor de club, wat meteen ook het winnende was.
Op 2 oktober 2018 tekende Sako een contract tot medio 2019 bij West Bromwich Albion, dat hem transfervrij overnam.
Sako werd voor het eerst opgeroepen voor het Malinees nationaal elftal voor de vriendschappelijke interland tegen Senegal op 5 maart 2014. Op 25 mei 2014 scoorde hij zijn eerste doelpunt voor Mali, tegen Guinee.