Sukcesy osiągnięte przez Odoakera, germańskiego króla Italii, zaczęły martwić Zenona cesarza bizantyjskiego, który coraz częściej postrzegał go jako irytującego rywala. Według Jana z Antiochii Odoakr wymienił kilka wiadomości z generałem Illusem, który w 484 r. przystąpił do otwartego buntu przeciwko cesarzowi. Relacje króla germańskiego z Konstantynopolem zostały nieodwracalnie zniszczone. W 488 r. cesarz Zenon zaoferował Teodorykowi Wielkiemu, królowi Ostrogotów, możliwość osiedlenia się we Włoszech, gdyby udało mu się usunąć Odoakra. Teodoryk Wielki miał swoje powody, aby przyjąć tę ofertę. Król Ostrogotów mając wystarczające doświadczenie polityczne, doskonale rozumiał (a przynajmniej podejrzewał), że cesarz Zenon nigdy długo nie będzie tolerował jego niezależnej władzy. W 485 r. Teodoryk Wielki zbuntował się. Z przekazów wynika, że miał ochotę przejęć tytuły, które wcześniej były nadane przez cesarza Zenona Armatusowi. W 476 r. Armatus zdradził cesarza Bazyliskusa , aby przejść na stronę Zenona i został przez niego dożywotnio mianowany "magister militum praesentialis". Jednak w ciągu roku cesarz Zenon zamordował Armatusa.
Mapa polityczna Europy w V wieku
W 489 r. Teodoryk Wielki poprowadził do Włochy przez Alpy Julijskie swoich Ostrogotów. 28 sierpnia Odoakr walczył z nim nad Isonzo, ale został pokonany. Następnie wycofał się do Werony, gdzie osiadł 27 września, gdzie natychmiast się umocnił. Teodoryk Wielki ścigał go, pokonując go drugi raz trzy dni później. Odoakr schronił się następnie w Rawennie; ale zamiast go ścigać, Teodoryk udał się do Mediolanu, gdzie większość armii Odoakra - w tym jego generał Tufa - poddała się mu, a Teodoryk nie mając powodu wątpić w lojalność Tufy, wysłał swojego nowego generała do Rawenny z garstką swoich najlepszych żołnierzy. Jednak Tufa zmienił front, a gocki kontyngent pod jego dowództwem został zniszczony, a Teodoryk poniósł pierwszą poważną porażkę w Italii. Teodoryk wycofał się do Ticinum (Pawia), a Odoakr wyszedł z Rawenny i zaczął oblegać swojego rywala. Tymczasem Burgundowie wykorzystali okazję do splądrowania i zniszczenia Ligurii: wielu mieszkańców zostało wziętych do niewoli i pozostało w niej tak długo, dopóki nie wykupił ich 3 lata później Teodoryk.
Teodoryk Wielki pokonuje Odoakra
Następnego lata król Wizygotów Alaryk II zademonstrował „jeden z rzadkich przykładów solidarności gockiej”, wysyłając pomoc wojskową królowi Ostrogotów, zmuszając tym samym Odoakra do porzucenia oblężenia. Teodoryk opuścił Pawię i 11 sierpnia 490 r. dwie wrogie armie starły się nad rzeką Adda. Tym razem zwyciężyli Ostrogoci, a Odoakr został zmuszony do odwrotu do Rawenny. Sytuacja się odwróciła i teraz to Teodoryk oblegał swojego rywala. Rawenna okazała się nie do zdobycia, otoczona przez bagna i ujścia rzek i stale wspierana przez małe łódki płynące z głębi lądu. Ponadto otrzymał niespodziewane posiłki z pobliskiego Trydentu, a w szeregach armii Teodoryka doszło do dezercji. W tym samym roku również Wandale skorzystali z toczących się walk we Włoszech i najechali Sycylię. Tymczasem Fryderyk, król Rugów i sprzymierzeniec Teodoryka, pozostał w Pawii, aby ją bronić, jednak zaczął uciskać jej mieszkańców. Pod koniec sierpnia 491 r. Teodoryk interweniował osobiście i ukarał Fryderyka za jego czyny. Popchnęło to Fryderyka do przejścia na stronę Tufy. Jednak później obaj się poróżnili i walczyli ze sobą w bitwie, w której obaj zginęli.
Od tego momentu Odoakr stracił wszelką nadzieję na zwycięstwo. Duży wypad, którego dokonał na obrzeżach Rawenny, w nocy z 9 na 10 lipca 491 r., okazał się całkowitą porażką, w czasie której zginął jego generała Livilii wraz z najlepszymi żołnierzami. Późnym latem 492 r. Ostrogoci zakończyli budowę floty w pobliżu Rimini, aby rozpocząć morską blokadę Rawenny Mimo to wojna trwała do 25 lutego 493 r., kiedy to Janowi, biskupowi Rawenny, udało się wynegocjować porozumienie między obiema stronami. Odoakr i Teodoryk Wielki mieli od tego momentu panować wspólnie w Italii. Dzięki temu po trzyletnim oblężeniu Teodoryk wszedł do miasta 5 marca. Dziesięć dni później, łamiąc porozumienie, Teodoryk zabił Odoakra własnym mieczem podczas uczty. Król Ostrogotów już wcześniej spiskował z niektórymi ze swoich zwolenników, aby zabić Odoakra, podczas, gdy obaj wspólnie ucztowali w pałacu zwanym "Ad Laurentum". Kiedy spisek się nie udał, Teodoryk chwycił swój miecz i uderzył Odoakra w obojczyk. Zgodnie z przekazami kronikarzy umierający Odoakr zapytał „Gdzie jest Bóg?" a król Ostrogotów odpowiedział: „To właśnie zrobiłeś moim przyjaciołom”.
Według przekazów źródłowych „tego samego dnia cała armia Odoakra, gdziekolwiek była, została zabita na rozkaz Teodoryka, a także członkowie jego rodziny". Sunigilda, żona Odoakra została ukamienowana na śmierć, jego brat Onulfo został zabity przez łuczników podczas próby schronienia się w kościele, Thela, syn Odoakra , został zesłany do Galii, ale kiedy próbował wrócić do Włoch, Teodoryk zabił go.