春秋为莒国都,秦置莒县,为琅琊郡治。据《说文解字》:“齐人呼芋为莒”,而莒为物产。西汉为城阳国都;又别署新山、高广、高阳等县,东汉废以上三县,入莒县,属琅琊国,隋属琅琊郡。唐、宋属密州,金为莒州治。明初省莒县入莒州,属青州府,清属沂州府。1913年废莒州为莒县,1925年属琅琊道,1928年道废直属省。1940年建莒县抗日民主政权,1941年析南境置莒南县,析中部置莒沂县,属鲁中行政区沂山专区。1945年莒中县改称莒县,1946年属滨海行署区,1948年属鲁中南行政区第六专区。1950年至1967年分属沂水专区、临沂专区、临沂地区。1992年12月属日照市。
1995年12月16日,撤销莒县浮来山、陵阳、长岭乡,设立浮来山、陵阳、长岭镇。1995年12月18日,撤销莒县安庄乡,设立安庄镇。1996年1月19日,撤销莒县店子集乡,设立店子集镇(鲁政函民字[1996]8号)。
1996年,莒县面积1952.4平方千米,人口约108万人。辖15个镇、10个乡:城阳镇、小店镇、中楼镇、长岭镇、东莞镇、龙山镇、刘家官庄镇、安庄镇、招贤镇、店子集镇、峤山镇、夏庄镇、浮来山镇、陵阳镇、阎庄镇、大石头乡、王家二十里堡乡、王家墩头乡、天宝乡、库山乡、果庄乡、洛河乡、桑园乡、棋山乡、寨里河乡。县政府驻城阳镇。
2000年第五次人口普查,莒县总人口1034519人,其中:城阳镇117853人,招贤镇63444人,闫庄镇37054人,夏庄镇57826人,刘官庄镇61986人,峤山镇36746人,小店镇51068人,中楼镇52260人,龙山镇41458人,东莞镇36127人,浮来山镇30561人,陵阳镇38536人,店子集镇37339人,长岭镇35894人,安庄镇30644人,二十里堡乡21591人,王家墩头乡18556人,寨里河乡34860人,棋山乡45877人,天宝乡25346人,洛河乡37398人,果庄乡28490人,大石头乡15507人,桑园乡50047人,库山乡28051人。
2000年12月27日,莒县撤销王家墩头乡,将其行政区域并入城阳镇;撤销大石头乡,将其行政区域并入峤山镇;撤销王家二十里堡乡,将其行政区域并入浮来山镇,镇人民政府驻地迁至原王家二十里堡乡人民政府驻地;撤销天宝乡,将其行政区域并入棋山乡(鲁政函民字[2000]88号)。
2002年2月1日,省政府批复同意:莒县撤销洛河乡,设立洛河镇;撤销棋山乡,设立棋山镇,以上2乡撤乡设镇后,其行政区域和人民政府驻地不变;浮来山镇人民政府驻地由王家二十里堡村迁至胡家街。截至2002年12月31日,莒县辖17个镇、4个乡。
2010年,撤销城阳镇,设立城阳街道;撤销寨里河乡,设立寨里河镇;撤销桑园乡,设立桑园镇。2013年12月12日,山东省人民政府《关于同意调整莒县部分行政区划的批复》(鲁政函民字[2013]50号)同意撤销果庄乡,以其原行政区域设立果庄镇,镇政府驻前果庄村;12月24日,《山东省人民政府关于同意调整日照市岚山区莒县部分行政区划的批复》(鲁政字[2013]250号)同意将莒县中楼镇划归日照市岚山区管辖。