清宣统二年(1910)设莘庄乡,1927年后曾为区。
1946年由松江县划属上海市二十六区(翌年改称龙华区)。
1949年5月15日解放,一度由松江县接管。
同年9月设莘庄乡,复属上海市龙华区。
1951年改莘庄镇。
1956年3月属西郊区,再建乡。
1958年8月划归上海县,9月编为七一人民公社第三大队。
1960年12月上海县县治由闵行镇迁此。
1961年9月设立莘庄人民公社。
1966年5月,以原莘庄集镇镇域设县属莘庄镇。
1984年3月莘庄公社改莘庄乡。
1992年9月,原闵行区、上海县“撤二建一”,属新的闵行区。
1993年3月25日原莘庄镇、莘庄乡“撤二建一”,设立新的莘庄镇,3月30日起为闵行区人民政府驻地。
1997年松江县九亭镇约1平方千米区域划入莘庄镇。
地名沿用至今。