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