因位于汾河之阳(西)而得名。据《明史·地理志》,汾阳县,奉宋金元汾阳军,汾阳军取义则因地当汾河之阳。始建于春秋初期,为瓜衍县,属并州。战国属赵,为兹氏县。秦、汉时期仍名兹氏县(今市区西南8千米巩村),属并州刺史部太原郡。新莽改兹同,东汉复旧。三国魏黄初二年(221)兹氏县治徙今城关,且为西河郡治。西晋改为隰城县,改郡为西河国。永嘉末年陷废。北魏太延年间置什星军,后废。太和八年(484)复置隰城县及西河郡,隶汾州。孝明帝时郡治南徙至今临汾地区。孝昌年间汾州自今交口县境徙此。东魏天平二年(535)于今城关南8千米东阳城村侨置灵州和真君郡。武定四年(546)于今城关东南8千米团城村置武昌郡。北齐改汾州为南朔州。北周废灵州,改南朔州为介州。
隋大业中年改介州为西河郡。唐武德元年(618)改西河郡为浩州,三年复为汾州。天宝元年(742)改汾州为西河郡,乾元元年(758)复为汾州。上元元年(760)改隰城县为西河县,属汾州。宋属河东路。金属河东北路。元属冀宁路。明洪武元年(1368),省西河县置汾州(直隶州),兼领平遥、介休、孝义三县。万历二十三年(1595)升汾州为汾州府,依廓设汾阳县,府属冀南道,府、道治所皆驻县城内。清康熙六年(1667)冀南道废入冀宁道。民国年间废府、道,县直属省。
民国29年,属晋西北行署第八专区;民国32年,属晋绥边区行署第八专区;民国34年,属晋绥边区吕梁行署七专区;民国37年,县划属华北区晋中专区。1948年7月,汾阳全境解放。1949年属汾阳专区,为专署驻地。1951年废汾阳专区,县改属榆次专区。1958年属晋中专区。1967年属晋中地区。1971年5月划归新成立的吕梁地区。1996年8月20日,经国务院批准,汾阳撤县设市,为县级市。
1997年,汾阳市辖10镇8乡:城关镇、石庄镇、演武镇、三泉镇、杨家庄镇、肖家庄镇、贾家庄镇、峪道河镇、杏花村镇、冀村镇、南偏城乡、见喜乡、栗家庄乡、阳城乡、张家堡乡、宋家庄乡、万宝山乡、城子乡。市政府驻城关镇。
2000年第五次人口普查,汾阳市总人口387046人,其中:城关镇72883人,杏花村镇27765人,冀村镇14919人,演武镇26892人,三泉镇32807人,峪道河镇16580人,杨家庄镇12646人,贾家庄镇34355人,肖家庄镇32023人,石庄镇11997人,城子乡23766人,见喜乡21972人,阳城乡21215人,南偏城乡4422人,栗家庄乡17153人,张家堡乡9157人,宋家庄乡5409人,万宝山乡1085人。
2001年,区划调整后,全市辖2个街道、9个镇、3个乡:文峰街道、太和桥街道、贾家庄镇、杏花村镇、冀村镇、肖家庄镇、演武镇、三泉镇、石庄镇、杨家庄镇、峪道河镇、西河乡、阳城乡、栗家庄乡。
汾阳市辖9个镇(杏花村镇、贾家庄镇、冀村镇、肖家庄镇、演武镇、峪道河镇、三泉镇、石庄镇、杨家庄镇)、3个乡(阳城乡、西河乡、栗家庄乡)、2个街道(文峰街道、太和桥街道),共有318个行政村,356个自然村。