Nelle qualificazioni al campionato d'Europa 2008 realizza sette reti, contribuendo al raggiungimento della fase finale della competizione. Nel giugno 2008 la squadra prende parte al torneo in Austria e Svizzera; all'esordio Villa mette subito a referto una tripletta per il 4-1 finale con cui gli iberici superano la . Nel secondo match, contro la , Villa segna il gol del definitivo 2-1 al 93' minuto, rete che consente alla squadra di accedere alla fase a eliminazione diretta; nel quarto di finale contro l' è il primo a presentarsi sul dischetto in occasione dei tiri di rigore, segnando. Nella semifinale contro la , infortunatosi, viene sostituito da Cesc Fàbregas ed è costretto, poi, a saltare la finale del torneo, Spagna- 1-0; si laurea ugualmente capocannoniere dell'Europeo con 4 reti.