清末屬濟(jì)寧直隸州西鄉(xiāng)東升莊、西升莊地方。
民國初期屬濟(jì)寧縣縉云鄉(xiāng)、第八區(qū)、第十學(xué)區(qū);1938年后屬偽濟(jì)寧縣第三區(qū);1945年8月屬濟(jì)寧縣第三區(qū);1946年1月后屬濟(jì)寧縣運(yùn)河區(qū)、濟(jì)北縣第三區(qū)、濟(jì)寧縣第三區(qū);1956年后為南張區(qū)、南張鄉(xiāng)、西劉鄉(xiāng);1958年8月屬二十里鋪人民公社;1962年5月,將二十里鋪公社西部劃出,建立南張人民公社;1966年6月撤社建區(qū);1969年3月撤區(qū)復(fù)設(shè)人民公社;1984年5月撤社建鄉(xiāng);1994年2月改鄉(xiāng)為鎮(zhèn);2008年撤鎮(zhèn)改設(shè)南張街道,沿用至今。