W młodym wieku trafił do piłkarskiej szkółki Valencii, a w 2003 roku został przesunięty do zespołu rezerw, w barwach którego rozegrał 14 meczów i zdobył 1 gola w Segunda División B. Sezon 2004/2005 Silva spędził na wypożyczeniu w drugoligowym SD Eibar. Zdobył tam 5 goli w lidze i był podstawowym członkiem jedenastki tego zespołu, z którym był bliski awansu do Primera División (Eibar ostatecznie zajęło 4. miejsce). Silva po sezonie wrócił do Walencji, ale tuż przed rozpoczęciem następnych rozgrywek ponownie został wypożyczony, tym razem do Celty Vigo. W drużynie Celty zadebiutował w Primera División, 28 sierpnia w wygranym 2:0 meczu z Malagą. W Celcie szybko wywalczył miejsce w podstawowym składzie i rozegrał w klubie z Vigo 34 mecze ligowe i zdobył 3 gole (swojego pierwszego zdobył 23 października w wygranym 1:0 meczu z Espanyolem). Z Celtą zajął 6. miejsce w lidze.
Po grze w Celcie Silva wrócił do Valencii. Otrzymał ofertę z Tottenhamu Hotspur, jednak klub postanowił przedłużyć kontrakt z Hiszpanem i w ostatecznie został on włączony do kadry pierwszego zespołu, w którym zastąpił Pablo Aimara, który odszedł do Realu Saragossa. Numer 21 otrzymał właśnie po nim. W barwach Valencii zadebiutował w 1. kolejce, w wygranym 2:1 meczu z Real Betis.
30 czerwca 2010 roku Manchester City ogłosił, że po zakończeniu Mistrzostw Świata Silva podpisze kontrakt z klubem. 15 lipca 2010 roku Hiszpan został oficjalnie zaprezentowany jako gracz Manchesteru.