清宣統(tǒng)二年(1910)設(shè)莘莊鄉(xiāng),1927年后曾為區(qū)。
1946年由松江縣劃屬上海市二十六區(qū)(翌年改稱(chēng)龍華區(qū))。
1949年5月15日解放,一度由松江縣接管。
同年9月設(shè)莘莊鄉(xiāng),復(fù)屬上海市龍華區(qū)。
1951年改莘莊鎮(zhèn)。
1956年3月屬西郊區(qū),再建鄉(xiāng)。
1958年8月劃歸上海縣,9月編為七一人民公社第三大隊(duì)。
1960年12月上?h縣治由閔行鎮(zhèn)遷此。
1961年9月設(shè)立莘莊人民公社。
1966年5月,以原莘莊集鎮(zhèn)鎮(zhèn)域設(shè)縣屬莘莊鎮(zhèn)。
1984年3月莘莊公社改莘莊鄉(xiāng)。
1992年9月,原閔行區(qū)、上海縣“撤二建一”,屬新的閔行區(qū)。
1993年3月25日原莘莊鎮(zhèn)、莘莊鄉(xiāng)“撤二建一”,設(shè)立新的莘莊鎮(zhèn),3月30日起為閔行區(qū)人民政府駐地。
1997年松江縣九亭鎮(zhèn)約1平方千米區(qū)域劃入莘莊鎮(zhèn)。
地名沿用至今。