清宣統(tǒng)二年(1910),百善置鎮(zhèn)。
1912年后,百善設(shè)鄉(xiāng),屬宿縣管轄。
1930年,百善鄉(xiāng)改宿縣第三區(qū)。
1939年6月,宿西縣辦事處下設(shè)柳孜區(qū),后又改為百善區(qū),下轄9個鄉(xiāng);1947年,恢復(fù)宿西縣,設(shè)百善區(qū)。
1950年,百善設(shè)鄉(xiāng),屬長山區(qū)管轄。
同年8月15日,設(shè)百善區(qū)(濉溪縣第五區(qū)),下轄12個鄉(xiāng)。
1955年12月,區(qū)劃變動,百善區(qū)下轄6個鄉(xiāng)1個鎮(zhèn)(百善鎮(zhèn))。
1957年,百善區(qū)下轄8鄉(xiāng)一鎮(zhèn)(百善鎮(zhèn))。
1958年8月撤百善區(qū),成立百善、徐樓兩個人民公社。
1962年1月,恢復(fù)百善區(qū)建制。
1969年4月撤百善區(qū),恢復(fù)百善、徐樓兩個人民公社。
1972年3月,百善公社劃分為百善、柳孜兩個公社。
1980年12月,百善區(qū)下轄8個公社;1983年4月,將百善區(qū)西北邊界的6個生產(chǎn)大隊,分別劃歸鐵佛和劉橋兩區(qū)。
1984年,百善區(qū)由8個公社改為8個鄉(xiāng)。
1992年2月,撤區(qū)并鄉(xiāng),將百善鄉(xiāng)、宋廟鄉(xiāng)、楊柳鄉(xiāng)、青衛(wèi)鄉(xiāng)合并為百善鎮(zhèn)。
2000年,百善鎮(zhèn)為副縣級建制鎮(zhèn)。
2006年2月8日,百善、徐樓兩鎮(zhèn)合并為新的百善鎮(zhèn)。
2013年,徐樓行政村的翟橋自然村劃歸濉蕪產(chǎn)業(yè)園所轄,沿用至今。