Puyolis pirmą kartą žaidė Ispanijos rinktinėje 2000 m. lapkričio 15 d. prieš Nyderlandus ir toliau žaidė reguliariai. Jis žaidė už savo šalį 2000 m. olimpinėse žaidynėse, 2002 m. Pasaulio čempionate, 2004 m. Europos čempionate.
, 2006 m. Pasaulio čempionatas, Euro 2008, 2009 m. FIFA Konfederacijų taurė ir 2010 m. Pasaulio čempionatas.