因境內有文峪河水而得名。春秋屬晉,稱平陵縣,戰國為大陵。秦于今城關東北10千米武陵村置大陵縣,屬太原郡。西漢因之;又于今城關西南13千米平陶村別置平陶縣,亦屬太原郡。新莽改大陵為大寧,改平陶為多穰,東漢復舊。北魏平陶縣治徙今平遙縣境。太平真君九年(448年)廢大陵縣改受陽縣,徙治今城關東5千米舊城莊。永安中年于今城關東南15千米回回堡一帶僑置蔚州,于今城關東南15千米忠義村僑置忠義郡,于今城關東20千米云周村僑置云州,后徙廢。
隋開皇十年(590年)改受陽為文水縣,屬太原郡。唐先后屬汾州、并州。唐天授元年(690年)因文水是武則天故里,改名武興縣,神龍元年(705年)改稱文水縣。宋屬太原府,元符中年徙今治。元屬冀寧路。明、清屬太原府。民國初年屬冀寧道,道廢后直屬省。1949年屬汾陽專區,1951年屬榆次專區。1958年并入汾陽縣,1959年復置縣。屬晉中專區。1967年屬晉中地區。1971年屬呂梁地區。
1997年,文水縣轄7鎮11鄉:城關鎮、南安鎮、開柵鎮、南莊鎮、劉胡蘭鎮、下曲鎮、孝義鎮、溝口鄉、宜兒鄉、南武鄉、西城鄉、南白鄉、上曲鄉、南齊鄉、北張鄉、西槽頭鄉、馬西鄉、蒼兒會鄉。縣政府駐城關鎮。
2000年第五次人口普查,文水縣總人口401641人,其中:城關鎮64800人,開柵鎮31213人,南莊鎮21455人,南安鎮17531人,劉胡蘭鎮31201人,下曲鎮26829人,孝義鎮27914人,溝口鄉2289人,宜兒鄉27893人,南武鄉22372人,西城鄉25725人,南白鄉16903人,上曲鄉13027人,南齊鄉14265人,北張鄉26791人,馬西鄉12435人,西槽頭鄉15323人,蒼兒會鄉3675人。
2000年12月至2001年4月,文水縣基本完成撤并鄉鎮工作。經山西省人民政府2001年1月12日晉政函(2001)16號函《關于文水縣調整鄉鎮行政區劃的批復》批準,文水縣鄉鎮調整情況如下:一、將溝口鄉和宜兒鄉并入城關鎮,設立鳳城鎮。以原溝口鄉、宜兒鄉及城關鎮的行政區域為鳳城鎮的行政區域,鎮政府駐城內大陵街118號原城關鎮辦公樓內。二、將蒼兒會鄉并入開柵鎮,設立新的開柵鎮。以原蒼兒會鄉和開柵鎮的行政區域為新的行政區域,鎮政府駐開柵村。三、將上曲鄉并入劉胡蘭鎮,設立新的劉胡蘭鎮,以原上曲鄉和劉胡蘭鎮的行政區域為新的劉胡蘭鎮的行政區域,鎮政府駐劉胡蘭村。四、將南白鄉并入南安鎮,設立新的南安鎮,以源南白鄉和南安鎮的行政區域為新的南安鎮的行政區域,鎮政府駐南安村。五、將南齊鄉并入下曲鎮,設立新的下曲鎮,以原南齊鄉和下曲鎮的行政區域為新的下曲鎮的行政區域,鎮政府駐下曲村。六、原南莊鎮、孝義鎮、西城鄉、南武鄉、北張鄉、馬西鄉、西槽頭鄉建制保持不變。此次行政區劃調整后,文水縣轄7鎮、5鄉:城關鎮、南安鎮、開柵鎮、南莊鎮、劉胡蘭鎮、下曲鎮、孝義鎮、南武鄉、西城鄉、北張鄉、西槽頭鄉、馬西鄉。