古為西甌駱越之地。據《元和郡縣志》:“有茂名水”故名茂名縣。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萬人。