清徐古称梗阳,始建于春秋。隋开皇十六年(596年)于梗阳故城置清源县,“因县西清源水为名”,属并州。大业二年(606年)废入晋阳县。唐武德元年(618年)复置,仍属并州。开元十一年(723年)改属太原府。金大定二十九年(1189年)析清源(东境)、平晋、榆次3县地置徐沟县,属太原府,故治在今徐沟镇。
兴定四年(1220年)改属晋州。元属冀宁路。明复属太原府。清乾隆二十八年(1763年)清源县废入徐沟县。1912年复置清源县,1915年再度并入徐沟县。1917年恢复清源县,与徐沟县俱属冀宁道;道废后直属省。1952年7月,清源、徐沟两县合并,取两县县名首字,称为清徐县,县城在清源镇。时属榆次专区。1958年属太原市。
1996年,清徐县面积609平方千米,人口27万人。辖4个镇、9个乡:清源镇、东于镇、孟封镇、徐沟镇、马峪乡、西谷乡、集义乡、吴村乡、王答乡、高花乡、杨房乡、柳杜乡、碾底乡。
1998年底,清徐县面积609.5平方千米,人口28.75万,其中非农业人口3.16万,农业人口25.59万。辖4个镇、9个乡,9个居委会、195个行政村,211个自然村。
2000年第五次人口普查,清徐县总人口328787人,其中:清源镇 60027 人,徐沟镇 26983 人,东于镇 28841 人,盂封镇 16862 人,马峪乡 15186 人,碾底乡 4928 人,吴村乡 23423 人,柳杜乡 19930 人,西谷乡 20230 人,王答乡 50923 人,扬房乡 14225 人,高花乡 19604 人,集义乡 27625人。
2001年,碾底乡并入马峪乡,吴村乡并入清源镇,杨房乡并入孟封镇,高花乡并入徐沟镇。调整后,清徐县辖5乡4镇。清源镇总人口79002人。
2004年底,清徐县辖4个镇、5个乡:清源镇、东于镇、徐沟镇、孟封镇;马峪乡、柳乡、西谷乡、王答乡、集义乡。