Puyol won his first cap for Spain on 15 November 2000 against the Netherlands, and remained a regular fixture in the following years. He played for his country at the 2000 Olympics, 2002 World Cup, Euro 2004, 2006 World Cup, Euro 2008, 2009 FIFA Confederations Cup and the 2010 World Cup.