Formado en las categorías inferiores de Antiguoko y Real Sociedad, debutó en Primera División con el conjunto donostiarra a mediados de la temporada 2000-01, tras ser repescado de su cesión en la Sociedad Deportiva Eibar. Permaneció en San Sebastián cuatro temporadas, alcanzó en el curso 2002-03 el subcampeonato de Liga en donde fue designado como «mejor jugador español» del campeonato por la revista "Don Balón". En 2004 fue traspasado al Liverpool Football Club de Rafa Benítez. En la primera de sus cinco temporadas con el club de Anfield, se proclamó campeón de Europa, tras la épica final de Estambul de 2005. En 2009 regresó a España para fichar por el Real Madrid Club de Fútbol (club que en 2004 estuvo a punto de ficharle). Con el club de la capital ganó una Liga, dos Copas (2011 y 2014), una Supercopa y su segunda Liga de Campeones, «La Décima» para el club. Tras cinco temporadas en Madrid, fichó en 2014 por el Bayern Múnich dirigido por Pep Guardiola. Permaneció tres años en el club bávaro, hasta su retirada al final de la temporada 2016-17, y tras 18 años como profesional.