L'8 agosto 2012 passa al Milan, con la formula del prestito oneroso (400.000 euro) con diritto di riscatto fissato a 6 milioni (pagabili in tre anni); il difensore colombiano, invece, sottoscrive un contratto da 1,5 milioni di euro a stagione e sceglie di indossare la maglia numero 17. Fa il suo esordio con la squadra milanese il 23 settembre seguente, in occasione della partita persa per 2-1 in casa della sua ex squadra, l'Udinese, e in cui viene anche espulso per doppia ammonizione. Dopo 29 presenze totali (23 in Serie A, 1 in Coppa Italia e 5 in Champions League), viene riscattato dal Milan, con cui firma un contratto triennale fino al 30 giugno 2016.