Da Silva urodził się w Rio de Janeiro. W młodzieńczych latach zapisał się do klubu CBF Nova Kennedy i tam grał do 15 roku życia. Wtedy to w 1998 roku przeniósł się do Zagrzebia i tam trafił do zespołu Dinamo Zagrzeb. Z czasem da Silva zaczynał grać coraz częściej w pierwszym zespole. W sezonie 2000/2001 wypożyczono go do Croatii Sesvete, a w 2002 roku był wypożyczony do drugoligowego wówczas Inter Zaprešić – ówczesny trener Dinama, Miroslav Blažević, nie widział dla niego miejsca w składzie. Dziesięć bramek w drugiej lidze pomogło Interowi w awansie do ekstraklasy. Da Silva powrócił do Dinama, kiedy trenerem został Nikola Jurčević.
W latach 2004 i 2006 został uznany za najlepszego piłkarza ligi. W sezonie 2005–2006 był także drugim najlepszym strzelcem ekstraklasy z 20 golami na koncie. Z Dinamem dwukrotnie, w latach 2003 i 2006, zdobył mistrzostwo, a w 2004 – Puchar kraju. W sezonie 2006/2007 da Silva zdobył aż 34 gole w 32 ligowych meczach, co jest rekordem chorwackiej ligi. Wywalczył też mistrzostwo Chorwacji z Dinamem.
W 2002 roku został powołany do młodzieżowej reprezentacji Chorwacji. W listopadzie 2004 meczem z Irlandią (3:0) zadebiutował w drużynie narodowej seniorów. Pierwszą bramkę zdobył w lutym 2006 podczas Pucharu Carlsberga w Hongkongu w meczu z tamtejszą reprezentacją (7:1). Był jednym z kandydatów z linii ataku do kadry na mistrzostwa świata w Niemczech, jednak selekcjoner Zlatko Kranjčar nie skorzystał z jego usług tłumacząc, że jest jeszcze "za młodym piłkarzem". Natomiast nowy selekcjoner Slaven Bilić widział w da Silvie podstawowego zawodnika reprezentacji i powołał go na swój debiutancki mecz, który został rozegrany 16 czerwca 2006 roku, a Chorwacja wygrała 2:0 z reprezentacją Włoch. Da Silva spisał się dobrze i zdobył jedną z bramek. Natomiast w wyjazdowym meczu eliminacyjnym do Euro 2008 z reprezentacją Izraela, wygranym 4:3, zdobył dla Chorwatów aż 3 bramki.
2 lipca 2007 roku Eduardo da Silva został zakupiony na 4 sezony do angielskiego klubu Arsenal F.C.
Dnia 23 lutego 2008 roku Eduardo da Silva w 3 minucie spotkania Arsenalu z Birmingham City został brutalnie sfaulowany przez Martina Taylora. Jak wykazały badania piłkarz doznał otwartego złamania stawu skokowego i zerwania w nim wszystkich więzadeł. Stopa piłkarza wygięta została w nienaturalnym kierunku pod kątem 90 stopni[1], zostały w niej zerwane naczynia krwionośne. Boisko opuścił po 8 minutach z założoną maską tlenową. Stwierdzono jednak, że złamanie nie jest tak poważne, jak wyglądało to na początku i piłkarz wróci na boisko być może po 9 miesiącach rekonwalescencji. Po 10 miesiącach ciężkiej rehabilitacji Eduardo wrócił na boisko w meczu rezerw 16 grudnia 2008 roku przeciwko drużynie Portsmouth[2].
Dnia 16 lutego 2009, Eduardo wrócił do drużyny Arsenalu strzelając 2 bramki w meczu FA Cup przeciwko Cardiff City.
Chorwacki piłkarz został zdyskwalifikowany na dwa spotkania Ligi Mistrzów. To efekt kary nałożonej przez UEFA za wymuszenie rzutu karnego w meczu 4. rundy kwalifikacyjnej (26 sierpnia 2009 r.) z Celtikiem Glasgow (3:1). Eduardo został uznany za winnego wymuszenia rzutu karnego. W 28. minucie interweniujący w polu karnym Celticu bramkarz Artur Boruc nie spowodował upadku napastnika "Kanonierów", ten jednak teatralnie upadł, a sędzia podyktował jedenastkę. Polski bramkarz ostro protestował, ale sędzia z Hiszpanii Manuel Mejuto González nie zmienił decyzji.
"Kanonierzy" odwołali się od kary dla chorwackiego napastnika – poskutkowało to anulowaniem kary. Eduardo odwdzięczył się za starania, strzelając zwycięskiego gola w meczu pierwszej kolejki Ligi Mistrzów ze Standardem Liège.
21 lipca 2010 roku oficjalna strona Szachtara Donieck potwierdziła zakup Eduardo da Silvy z Arsenalu. Zawodnik podpisał czteroletni kontrakt[3]. W lipcu 2014 po wygaśnięciu kontraktu opuścił doniecki klub[4], a potem wyjechał do Brazylii, gdzie bronił barw C.R. Flamengo[5]. W lipcu 2015 powrócił do Szachtara Donieck[6]. Po wygaśnięciu kontraktu w grudniu 2016 opuścił Szachtar, natomiast 1 stycznia 2017 został zaprezentowany jako nowy zawodnik brazylijskiego Athletico Paranaense[7].
4 stycznia 2018 roku podpisał roczny kontrakt z Legią Warszawa[8]. 9 lutego 2018 roku zadebiutował w barwach warszawskiej Legii w wygranym 3:2 meczu 22 kolejki Ekstraklasy z Zagłębiem Lubin. Wszedł na boisko w 46 minucie meczu, zaliczył asystę przy drugim golu Jarosława Niezgody oraz wywalczył rzut karny w doliczonym czasie gry do drugiej połowy meczu[9]. W sezonie 2017/2018 – który zakończył bez gola, z 10. meczami w lidze i 2. w Pucharze Polski[10] – zdobył mistrzostwo i Puchar Polski.
19 sierpnia 2018 wystąpił w swoim jedynym meczu ligowym sezonu 2018/2019, przeciwko Zagłębiu Sosnowiec, wygranym 2:1[11]. 13 września 2018 roku zawodnik został usunięty z listy zgłoszonych do rozgrywek Ekstraklasy[12], a 13 grudnia 2018 roku Legia poinformowała, że obowiązujący do końca roku kontrakt Eduardo nie zostanie przedłużony[13]. Po odejściu z Legii, Eduardo zakończył karierę piłkarską.
Życie prywatne
10 grudnia 2005 roku Eduardo poślubił Andreę Šok. Para ma dwójkę dzieci - córkę Lorenę (ur. 2006) i syna Mateusa (ur. 2010), który gra w młodzieżowych zespołach Flamengo[14][15].
Działalność charytatywna
Eduardo wspiera Sports Business Club, organizację mającą na celu ratowanie przed wyginięciem borykających się z problemami lokalnych klubów piłkarskich, takich jak Gillingham Town(inne języki), które jako jedno z pierwszych otrzymało taką pomoc. O przedsięwzięciu Eduardo powiedział: „Wszyscy musimy się jednoczyć, aby pomóc. Nie potrafię wyrazić słowami, jak ważne jest, aby wszyscy wspierali sport”[16].
Konflikt ze Zdravko Mamiciem
W 2009 roku Eduardo pozwał ówczesnego prezesa Dinama Zagrzeb, Zdravko Mamicia z powodu niekorzystnego kontraktu, zgodnie z którym Silva musiał płacić rodzinie Mamicia 50% wynagrodzenia przez całą swoją karierę. Mamić argumentował, że Eduardo podpisał kontrakt z własnej woli, jednakże sąd uznał argumenty naturalizowanego Chorwata - w momencie podpisywania kontraktu piłkarz z Brazylii miał 16 lat, nie znał języka chorwackiego ani chorwackiego prawa i fakt ten został przez prezesa Dinama wykorzystany. Silva wygrał sprawę w 2014 roku[17][18][19].