Puyol va guanyar el seu primer partit per Espanya el 15 de novembre de 2000 contra els Països Baixos, i va seguir sent un jugador habitual en els anys següents. Va jugar per el seu país als Jocs Olímpics de 2000, la Copa del Món de 2002, l'Euro 2004
, Copa del Món 2006, Euro 2008, 2009 Copa de les Confederacions de la FIFA i la Copa del Món 2010.