→ Šipka znamená hostování hráče v daném klubu. * Starty a góly v domácí lize za klub aktuální k konec kariéry ** Starty a góly za reprezentaci aktuální k konec kariéry *** Trenérské působení aktuální k 23. 7. 2022
Mezi roky 2000 až 2002 hrál základ za prvoligový klub Hellas Verona. V první sezóně se tým zachránil až v play-off proti Reggina Calcio.[1]
V následujícím ročníku odehrál 32 z celkových 34 ligových zápasů včetně listopadového derby proti Chievo Verona, kdy se tyto dva veronské týmy vůbec poprvé střetly na scéně první ligy. Hellas na domácím trávníku prohrával 0:2, ale po faulu na Adriana Mutua snížil z penalty právě Massimo Oddo a po přestávce jeho tým otočil na vítězný výsledek 3:2.[2]
Tento rok však Hellas opět skončil na 15. místě a tentokráte už sestupoval přímo.[3]
V létě v roce 2002 přestoupil do Lazia Řím, byť postup komplikovala italská fotbalová asociace, neboť římský celek sužovaly finanční problémy.[4]
Úvodní sezónu se mohl předvést v rámci Poháru UEFA, kde bylo Lazio vyřazeno až v semifinále portugalským FC Porto.
V průběhu sezóny 2006/07 zamířil 30letý Oddo do AC Milán jako náhrada za stárnoucího brazilského obránce jménem Cafú. Součástí obchodu byl též záložník Pasquale Foggia, který naopak odešel do Lazia.[5]
Ačkoli v lize AC Milán obsadil až čtvrté místo,[6]
cesta evropskou Ligou mistrů byla úspěšná. Po vyřazení Celticu se Rossoneri ve čtvrtfinále střetli s Bayernem Mnichov. Oddo dostal několika centrovanými míči spoluhráče do brankových příležitostí, přičemž přesná hlavička Pirla byla gólová. Přesto domácí utkání dopadlo remízou 2:2.[7]
V Německu ale milánská obrana s Oddem, Nestou, Maldinim a Jankulovskim neinkasovala a po dvougólovém vítězství postoupila dál.[8]
AC Milán následně vyřadil Manchester United, aby se ve finále znovu střetl s anglickým Liverpoolem. Massimo Oddo nastoupil opět v základní sestavě a odehrál celých 90 minut. Centrovanými míči pomáhal útočícím spoluhráčům a poradil si rovněž s levým krajním obráncem soupeře Riisem.[9]
Oddo se tak stal vítězem nejcennější evropské trofeje.[10]
Trenérem se stal v roce 2013 a jeho první angažmá bylo v klubu Janov CFC kde vedl B tým. V roce 2014 byl zaměstnán u juniorů (Primavera) v klubu Delfino Pescara 1936. Dne 16. května2015 se stal trenérem týmu dospělých když nahradil Baroniho. S klubem se dostává do play off druhé ligy. Nakonec prohrál ve finále s Boloní. Klub vedl ještě dvě sezony až do 14. února2017 když byl propuštěn za špatné výsledky.[18]
Jeho novým zaměstnavatelem se stal klub Crotone FC29. října2018, když nahradil trenéra Stroppu. Jenže po osmi zápasech byl pro špatné výsledky vyhozen (6 porážek).
Dne 7. června2019 byl najat klubem AC Perugia Calcio. Tady vydržel do 4. ledna2020. Jenže po špatných výsledcích jeho následníka byl 19. července opět najat. Jeho klub se utkal v utkání o přímí sestup do třetí ligy s Pescarou, se kterou prohráli ve druhém utkání na penalty. Smlouvu po sezoně ukončil.