Cresciuto nelle giovanili dell', esordisce in prima squadra nella stagione 2003-2004. Dopo la retrocessione in Serie B della squadra bergamasca, viene acquistato dalla . Con la maglia viola disputa oltre 200 partite, alcune di queste da capitano, ottenendo il raggiungimento di una semifinale di Coppa UEFA e alcune qualificazioni in Champions League. Nel 2012 passa al Milan, disputando in totale 158 presenze, indossando la fascia da capitano del club rossonero dal 2013 al 2017, dove vince la Supercoppa italiana 2016, ottenendo inoltre il raggiungimento di due finali di Coppa Italia, e delle qualificazioni in Europa League e in Champions League.