Silva nam in 2003 met Spanje deel aan het Europees kampioenschap –17. Spanje verloor in de finale van Portugal. Hij speelde ook op het WK –20 in 2005, waarop Silva met zijn land in de kwartfinale werd uitgeschakeld door de latere kampioen Argentinië. Hij scoorde vier keer dat toernooi. Silva debuteerde in november 2006 tegen Roemenië in het 'echte' Spaanse nationale team. Daarmee werd hij Europees kampioen 2008. Bondscoach Vicente del Bosque nam hem vervolgens mee naar het gewonnen WK 2010. Daarop begon Silva de eerste wedstrijd tegen Zwitserland (0–1 verlies) in de basis, maar werd hij na een uur gewisseld voor Jesús Navas en kwam hij de rest van de groepsfase niet meer van de bank.