Im Nationalteam kam er erstmals am 21. August 2002 gegen Ungarn (1:1) zum Einsatz. Er nahm an der EM 2004, WM 2006 der EM 2008 und der WM 2010 teil. Bei den beiden letztgenannten Turnieren konnte er mit seiner Mannschaft jeweils den Titel gewinnen, wobei er 2008 zum Stammaufgebot der Spanier zählte. Bei der WM 2010 wurde er in drei Spielen jeweils kurz vor Schluss eingewechselt. Zudem stellte er am 29. Mai 2010 im Spiel gegen Saudi-Arabien den Rekord von Brasiliens Fußball-Legende Garrincha ein und blieb in seinem 50. Länderspiel in Serie unbesiegt.