Se formó como futbolista en las divisiones inferiores de Universidad Católica, donde nunca llegó a debutar en primera división. Su primer partido profesional en clubes tuvo lugar a fines de 2007 con el Udinese italiano, equipo que lo contrató tras su participación en la Copa del Mundo Sub-20 celebrada en Canadá. Tras cinco años en el cuadro bianconeri, la Juventus concretó su fichaje pagando €18 millones por la mitad de su pase, en una operación en la que también entró su compañero Kwadwo Asamoah. Se mantuvo por dos temporadas en Turín, tiempo en el que participó en la obtención de dos Serie A y de tres Supercopa de Italia, pero tras no afianzarse en la titularidad partió cedido al Queens Park Rangers de la Premier League. Durante los siguientes tres años tuvo pasos por tres equipos diferentes: el mencionado club inglés, el Cagliari y el Olympique de Marsella, en los cuales no consiguió ningún título. A mediados de 2017 fue contratado por el Fenerbahçe, donde jugó noventa y un partidos y dio trece asistencias en las tres temporadas que estuvo en Turquía.