De 2005 à 2007, le sportif évolue au sein du Grenoble Foot 38, puis, passe une année au FC Istres à la fin de laquelle il est recruté par le Tours FC, revenant en Ligue 2. Tout début 2010, son transfert vers Montpellier HSC est officialisé, pour 2 millions d'euros. C'est dans ce club qu'il reçoit son premier titre : celui de Champion de France 2012, en même temps qu'il est sacré meilleur buteur de la saison (21 buts). Milieu de la même année, il est recruté à l'Arsenal. Il y est nommé capitaine, pour la première fois de sa carrière, en 2017. L'année suivante, sur les conseils de Didier Deschamps, il s'engage à Chelsea En juillet 2021, il quitte le club anglais pour l'AC Milan.