战国为赵之离石邑。秦置离石县,属太原郡。据《山西通志》:“离石山,在州北一百八十里,即赤坚岭也。山前有离石水。古设离石郡、离石县,胥以山名。”西汉属西河郡;又于今市境别置于离县,属太原郡。新莽改于离为于合,东汉复旧。永和五年(公元140年),西河郡自今内蒙古鄂尔多斯市东胜区境移治于离石。灵帝末,郡县俱废。三国魏黄初元年(220)复置,属西河郡。西晋时离石县属西河国。东晋大兴二年(319)十六国后赵置永石郡,离石县属之,于离县废。后燕置离石护军,北魏明帝降为离石镇。北齐天保三年(552年)置昌化县,属怀政郡,且为郡治。北周建德六年(577年)改昌化县为离石县,改怀政郡为离石郡。
隋开皇初废郡,县属石州。大业二年(606)废州,复置离石郡,县属之。唐武德元年(618)改离石郡为石州,天宝元年(742)改石州为昌化郡,乾元元年(758)复为石州,县均属之。蒙古中统二年(1261)废县入州,次年复置;明洪武三年(1370)再废县入州,隶太原府。隆庆元年(1567)以石、失同音改石州为永宁州。万历二十三年(1595)隶汾州府。
1912年改永宁州为永宁县,1914年改离石县,属冀宁道,道废后直属省。抗日战争时期(1941年)析置离东县,属晋绥边区三专署,后属四专署,1946年并入离石县。1949年属兴县专区。1952年属榆次专区。1954年与方山县合并为离山县。1958年与中阳县合并,复名离石县,属晋中专区。1960年中阳县析出。1967年属晋中地区。1971年方山县析出,属吕梁地区,为地区公署所在地。1996年撤县设市。2003年10月23日,国务院批准(国函[2003]112号)撤销吕梁地区,设立地级吕梁市。吕梁市设立离石区,以原离石市的行政区域为离石区的行政区域,区政府驻交通路。
1997年,离石市辖6个镇、9个乡:城关镇、田家会镇、吴城镇、西属巴镇、信义镇、交口镇、阳坡乡、红眼川乡、坪头乡、王家沟乡、结绳墕乡、枣窊乡、王营庄乡、枣林乡、小神头乡。市政府驻城关镇。
2000年第五次人口普查,离石市总人口235678人,其中:城关街道88730人,城关镇37192人,吴城镇6826人,田家会镇15706人,西属巴镇16711人,交口镇14245人,信义镇8475人,王营庄乡5306人,红眼川乡5025人,阳坡乡2865人,小神头乡4041人,王家沟乡5797人,坪头乡9962人,枣洼乡5095人,结绳焉乡3833人,枣林乡5869人。
全区现辖7个街道、2个镇、3个乡:滨河街道、凤山街道、莲花池街道、城北街道、田家会街道、交口街道、西属巴街道、吴城镇、信义镇、红眼川乡、枣林乡、坪头乡。区政府驻交通路。