古为西瓯骆越之地。据《元和郡县志》:“有茂名水”故名茂名县。1959年,为开采油母页岩炼制石油,从茂名县南部划出8个乡设茂名市,将茂名县改称高州县。1983年实行市管县体制。1985年设立茂南区,为茂名市辖区。
1996年,茂南区辖:河东街道、官渡街道、露天矿街道、河西街道、红旗街道、新华街道、金塘镇、公馆镇、镇盛镇、鳌头镇、袂花镇、高山镇、新坡镇、山阁镇。
2000年第五次人口普查,茂南区(辖7个街道、8个镇)常住总人口644301人,其中:红旗街道26089人,河西街道19406人,河东街道62679人,露天矿街道15634人,新华街道10815人,官渡街道99554人,站前街道30061人,金塘镇57424人,公馆镇57543人,新坡镇33586人,镇盛镇49420人,鳌头镇71818人,袂花镇41160人,高山镇22720人,山阁镇30378人,茂南开发区16014人。
2002年,茂南区辖红旗、河西、河东、新华、官渡、站前、露天矿7个街道和山阁、高山、袂花、新坡、鳌头、镇盛、公馆、金塘8个镇。
2005年末,茂南区辖红旗、河西、河东、新华、官渡、站前、露天矿7个街道和金塘、山阁、高山、袂花、新坡、鳌头、镇盛、公馆8个镇。
2008年末,茂南区户籍总人口807726人。
2009年末,茂南区面积525.6平方千米,辖8个街道、8个镇,79个社区、135个行政村。区政府驻站前街道站前路28号。
2010年第六次人口普查,茂南区常住总人口820821人,其中:红旗街道30888人,河西街道23849人,河东街道93590人,露天矿街道17230人,新华街道11534人,官渡街道158808人,站前街道79575人,金塘镇60774人,公馆镇63792人,新坡镇36699人,镇盛镇53847人,鳌头镇70459人,袂花镇40844人,高山镇16750人,山阁镇31037人,茂南开发区31145人。
2012年末,茂南区辖8个镇、7个街道和1个城郊经济开发试验区,面积487平方千米,户籍人口84.4万人,常住人口83.6万人。