Le joueur est âgé de 27 ans et est international sénégalais (23 sélections, 4 buts) après avoir été international espoirs français. Formé à Caen, il a également joué à l'AC Milan où il a été sous contrat entre 2012 et 2018 (79 matches, 12 buts).
Il a ensuite fait l'objet de plusieurs prêts à Montpellier (2014), au Genoa (2015), à Watford en Premier league (2017), au Torino (2017-2018) où il a été transféré définitivement (2018-2019) mais qui l'a prêté à Rennes (2018-2019) avant d'y être transféré (2020-2021).
Avec le club breton, il a disputé 92 matches pour 30 buts. Prêté à Al Ahli (Arabie saoudite), il a joué la saison dernière à Bordeaux pour huit buts en 23 matches.