原名劄佐。
春秋战国属牂牁。
唐、宋分属功州和蛮州。
元至元二十年(1283年),设落帮(今久长镇落邦即芦坊)剂佐(今扎佐)等处蛮夷长官司,辖今扎佐和久长两镇及息烽猫场。
元天历二年(1329年),播州(今遵义)至贵州(今贵阳)驿道开通,置贵州、扎佐、底寨、养龙坑和乌江驿站。
明洪武五年(1372年)正月十七日,土酋宋文中归附朝廷,改置扎佐长官司,属四川行省贵州宣慰司。
明天启六年(1626年),巡按监察御史傅宗龙派副将王国桢始建扎佐城。
明崇祯三年(1630年),置修文守御千户所,驻地扎佐,隶属敷勇卫。
清康熙二十六年(1687年),裁敷勇卫置修文县,同时裁修文所改置崇义里,镇境分属修文县崇义里和贵筑县北下里。
乾隆十五年(1750年),贵阳府于扎佐设巡检署,建巡检衙门于南门。
民国初,仍袭清制。
民国二年(1913年)12月,裁扎佐巡检署划归贵阳府。
民国四年(1915年)12月,废崇义里,贵筑县北下里部分地划入,合并建修文县南区,治所扎佐街,下辖8保、84甲。
民国二十一年(1932年),南区改名第四区。
民国三十一年(1942年),撤区改设扎佐乡。
1949年11月24日,修文县建立,全县设4区,镇属扎佐区,下辖扎佐镇、桃源乡、清让乡。
1950年8月,扎佐区改称第二区。
1955年11月,复称扎佐区。
1957年7月,扎佐镇升为区级镇。
1958年9月,取消区、乡建制,分建扎佐、飞跃2公社。
1959年5月,2公社合并为扎佐公社。
1961年6月,恢复区级建制,原扎佐公社改为扎佐区,管理区政公社,7管理区调整为扎佐、三元、清让、桃源、六屯5公社。
1962年4月,三元公社并入扎佐公社。
1963年3月,扎佐公社析为扎佐镇和高潮公社。
1965年11月,增设三元公社。
1966年5月,进行撤区试点,将扎佐镇、高潮公社和三元公社的磨盘寨生产队合并为扎佐公社。
1981年1月,由扎佐公社析出扎佐集镇部分恢复扎佐镇建制。
1984年4月,实行政、社分设,复建乡(镇)。
1991年11月,撤区并乡建镇,撤销原扎佐区和扎佐镇,将扎佐、三元、清让3乡并入扎佐镇。
2020年5月,贵州省人民政府批准同意修文县撤销扎佐镇部分行政区划,设立扎佐街道。