Nærheden til Odense Fjord betyder, at en række fynske vandløb har deres udløb i Odense Kommune. I alt har kommunen ca. 331 km vandløb, hvoraf de 55 km er rørlagte. Blandt de længste vandløb er Odense Å, Vejrup Å, Lindved Å, Stavidså, Borreby Møllebæk, Rydså og Fraugde Bæk.
Spærringer fra bl.a. vandmøller og dambrug har især tidligere hæmmet vandrefiskenes bevægelser op og ned i vandløbene. I et samarbejde mellem de fynske kommuner i erhvervsfremmeprojektet Havørred Fyn er der fjernet et stort antal spærringer, og efter mange års indsats er flere af de længere vandløbsstrækninger atter blevet vigtige gydevandløb for havørred.
Derudover har en række vandløbsstrækninger fået deres snoede løb tilbage. Eksempelvis er en 7,6 km lang strækning af Stavidså mellem Skovs Højrup i vest og Næsby i øst blevet genslynget, hvilket har forlænget åen med en kilometer. Projektet blev fulgt op med en 1,2 km lang genslyngning af Sørenden, der løber til Stavidså ved Næsbyhoved-Broby. Dertil kommer Højbjergafløbet tæt ved Ejlstrup, der har været rørlagt, men nu er åbnet og siden genslynget over en strækning på ca. 800 m. I 2020 blev også en ca. 600 m lang strækning af Rydså ved Villestofte og Tarup genslynget.
Ud over vandløbene har Odense Kommune 1.151 søer på mindst 100 m2. Tilsammen dækker de 310 ha, svarende til blot 1 % af kommunens areal. Gennem tiden er mange søer og vandhuller dog forsvundet for at give plads til fx ny landbrugsjord og bebyggelse. Til gengæld er der også opstået adskillige nye søer ved Davinde som følge af råstofindvinding. I 2016 fik kommunen endnu en sø i form af Glisholm Sø øst for Hjallese. Den ca. 7 ha store sø fungerer som et regnvandsbassin og blev til i et samarbejde mellem VandCenter Syd, Odense Kommune og Danmarks Naturfredningsforening.