Przez teren gminy przepływają cztery rzeki: Bukowina, Okalica, Struga Krępkowicka oraz Unieszynka. Na obszarze gminy położonych jest 18 jezior. Największe z nich to: Brody, Oskowo, Osowskie oraz Święte. Jezioro Święte ma unikatową wartość przyrodniczą – jest jednym ze 160 istniejących w Polsce jezior lobeliowych. W wodach rzek, strumieni i jezior żyją liczne gatunki ryb: karaś, kleń, leszcz, lipień, płoć, sandacz, stynka, szczupak, śliz.
zdj. Jezioro Brody w Krępkowicach
zdj. Jezioro Brody w Krępkowicach