本县境内河流全属黄河水系,流经的一级河流有黄河,二级河流有无定河,四级河流有大理河、淮宁河,五级河流有义合河。全县五级以下河流共483条。所有大小河流包括入境流量,共计径流量990.86立方米/秒,其中自产水量0.8381立方米/秒,入境流量990.02立方米/秒。年径流量312.4776亿立方米。
黄河:古名河水。在县东南角,是本县与山西省的天然界线。
流经枣林坪乡和河底乡。由吴堡县康家塔向西流入本县枣林坪的石岔村,经石岔折向南流,经枣林坪乡,至鱼家庄折向东流,到河底乡再南流,曲曲弯弯,至河底乡后店折向西,于纸房沟进入清涧境。在本县流长25.8公里,年平均径流量951.87立方米/秒,年过境总流量300.22亿立方米,年输沙量7.32亿立方米。由于沿岸植被破坏,水土流失严重,年土壤浸蚀模数约为每平方公里2至3吨。
无定河:秦、汉时叫奢延水或圁水。唐时称无定河,因水流急、河床变异、深浅莫定而得名。纵贯本县南北。由米脂县高二沟向南流入本县四十里铺镇谢家沟村和赵家砭乡,流经四十里铺镇、张家砭乡东部、辛店乡,经县城东后向东南流,经白家崄乡、薛家峁乡、崔家湾镇、苏家岩乡,于苏家岩乡梁家川流入清涧县境。在境内流长62.6公里(占全长的12.75%)。县内流域面积1,488.552平方公里。年平均径流量32.73立方米/秒,年径流总量10.34亿立方米。年输沙量8,770万吨。实测最大径流量3,630立方米/秒,发生在1966年。历史上洪水最大流量9,500立方米/秒,发生在1919年。实测最小流量为零,发生在1966年。
大理河:古名平水。从子洲县高家砭向东流入本县石家湾乡李家崖,然后向东南流,经石家湾乡、张家砭乡、名州镇,至保障砭折向东北流,至云岩向西北绕城,到白家湾向东流,于月宫山注入无定河。县内流长23.6公里(占全长13.85%)。县内流域面积174.25平方公里。年平均径流量4.947立方米/秒,年径流总量1.563亿立方米,年输沙量6,530万吨。实测年最大径流量2,450立方米/秒,发生在1977年8月5日。实测最小流量为零,发生在1972年8月8日。本流域共有48条支毛沟的水流注入大理河,径流总量143.18立方米/秒,占大理河年平均流量的2.9%。
淮宁河:古称走马水。流经县西南,从子洲县前淮宁湾向东北流入本县田庄乡富坪村,经田庄乡入辛店乡南部,于辛店乡邓家楼向东注入无定河。县内流长20.1公里。境内总流域面积112平方公里。1982年10月份实测径流量1.08立方米/秒。境内有27条支毛沟的河水注入淮宁河,径流总量36.9公升/秒,占淮宁河流量的3.42%。
义合水:义合水起源于马家川乡延家畔。向东南流经马家川、中角乡、义合镇。向西南流经满堂川乡南部、薛家峁乡东部。于薛家峁乡魏家峁,注入无定河。全长42公里。流域面积427平方公里,实测最大径流量1,600立方米/秒,发生在1966年7月17日。流域内共有135条支毛沟的水注入义合水,径流量为231.46公升/秒。占全县产水量的27.62%。