現上莊地域歷史上長期隸屬于昌平縣。
西郊農場前身彰化農場系1949年11月建立,場部設在彰化村(今四季青南部),1954年4月改為現名。
1956年3月,白水洼鄉成立。
1958年5月,西郊農場場部遷至上莊村村南(屬白水洼鄉)。
1958年9月1日,現鄉域并入昌平區先鋒人民公社。
10月,原白水洼鄉大部(除東坨)、蘇家坨鄉等地劃歸海淀區,并入10月7日新成立的海淀區永豐人民公社。
1961年4月,永豐公社撤銷,在現鄉域成立上莊人民公社。
與國營西郊農場實行場鄉合一的行政體制。
1984年4月4日,上莊公社改鄉,鄉政府與西郊農場合署辦公。
1998年11月,鄉與農場分離。
2003年8月,撤上莊鄉設立上莊鎮。