柳林县春秋时为晋国领地,战国归属赵国边邑离石。
秦时属太原郡。汉时置西河郡。
汉武帝元朔三年(前126年)柳林县分属离石、蔺、隰城等侯国。元朔四年(前125年)置西河郡,属之。东汉建安十八年(213年)废西河郡,并入太原郡。
三国魏黄初二年(221年)复置西河郡,西晋时西河郡改为西河国,柳林县分属西河国辖下的离石、隰城、中阳三县。北朝时期,北齐置西汾州,北周大象元年(579年)西汾州下设定胡郡,置定胡县,郡县治所皆在今孟门镇,柳林县大部分属之。后西汾州改称石州。
隋大业元年(605年),石州改为离石郡。
唐武德元年(618年)复称石州。武德三年(620年)置西定州,治所在今之孟门镇。贞观二年(628年)废西定州,改定胡县为孟门县,县属石州。贞观七年(633年)废孟门县,置孟门镇。贞观八年(634年)废镇,复置定胡县。
北宋时期,柳林县先属石州,后属晋宁军。
金时县境大部属石州治下的孟门县。
元朝初年,孟门、方山二县并入离石,柳林县分属离石、宁乡二县。
明初离石县并入石州,隆庆元年(1567年)石州改称永宁州,属之。明代后期,属山西太原府治下永宁州。清朝时期,柳林县分属汾州府治下的永宁州、宁乡县。
民国元年(1912年)柳林县境属山西民国三年(1914年),永宁改称离石,宁乡改称中阳,今县境隶属未变。
民国二十六年(1937),山西省划为七个行政区,离石、中阳属第四行政区。
民国二十九年(1940)1月,离石县抗日民主政府在蛤蟆塌(今孟门镇石安村)成立,柳林县属晋西北抗日民主政权之山西省第二游击区行政公署四专区。
民国三十五年(1946年)中阳县解放,柳林县境仍分属吕梁地区四专区辖下的离石、中阳两县。
民国三十七年(1948),离石、中阳改属三专区。
民国三十八年(1949)2月,离石、中阳改属晋西北行政公署。9月,离石改属兴县专区,中阳改属汾阳专区。
1951年,中阳县改属兴县专区。
1952年7月,离石、中阳改属榆次专区。
1954年7月,方山县与离石县合并为离山县。
1958年11月,离山、中阳两县合并,复称离石县。
1959年9月离石、中阳分治,柳林县又分属离石、中阳两县。
1971年4月,从离石县西部划出柳林等1镇13个公社,从中阳县西部划出公社组建成新的离石县。5月离石县革命委员会移驻柳林镇,7月5日正式定名为柳林县,隶属吕梁地区。2004年5月起属吕梁市。