Карьера в сборной
Дебютировал в национальной сборной Испании 9 февраля 2005 года в матче против сборной Сан-Марино. Участник чемпионата мира 2006 года, забил на этом турнире 3 мяча. Чемпион Европы 2008 года. На победном для сборной Испании европейском первенстве Вилья стал лучшим бомбардиром, забив 4 мяча, но не смог принять участие в финальном матче Евро из-за травмы, полученной в полуфинале против сборной России.
На чемпионате мира-2010 Вилья не забил пенальти в ворота Гондураса, став первым из испанских футболистов, в финальных розыгрышах чемпионатов мира не реализовавшим одиннадцатиметровый, назначенный по ходу матча[77]; в той же игре Вилья забил два мяча.
25 марта 2011 года Вилья в матче с Чехией сделал дубль, принеся победу своей команде со счётом 2:1[78], благодаря этим двум мячам, он сумел побить рекорд по числу голов за сборную, который принадлежал Раулю[79].