區境在唐、五代、宋時屬華亭縣高昌鄉。元、明、清三代屬上海縣高昌鄉。清宣統二年(1910年),區境分屬上海縣的上海城、法華鄉、漕河涇鄉。民國3年(1914年),法國殖民主義者第三次擴張,境內今肇嘉浜路以北、華山路以東地區劃入法租界范圍,其余地區仍屬上海縣。民國16年,國民政府設上海特別市,區境除法租界外,分屬滬南區、漕涇區、法華區。
抗日戰爭期間,華界先后分屬偽上海市大道政府南市區、滬西區和上海特別市第四、七、八區。抗日戰爭勝利后,區境分屬上海市第七區(常熟區)、第八區(徐家匯區)、第二十六區(龍華區)。1949年5月全境解放,實行軍事接管。1950年6月,成立徐匯區人民政府。1956年3月,常熟區與徐匯區合并為徐匯區。
1984年9月,上海縣龍華鎮和漕河涇鎮劃屬徐匯區。1990年,第四次全國人口普查,徐匯區總戶數為224724戶,總人口為776602人;9月,經市政府批準,成立虹梅路街道,辦事處于12月31日掛牌。1991年5月26日,經市政府批準,撤銷宛平南路、漕溪北路街道,建立新的漕溪北路街道;撤銷新樂路、湖南路街道,建立新的湖南路街道。
1992年7月8日,市政府決定,上海縣龍華鄉和虹橋鄉的虹三、虹南、星聯、長春4個村及梅隴鄉的桂林、牌樓、和平3個村劃歸徐匯區。9月15日,徐匯區龍華鄉政府掛牌。7月12日,經市政府批準,設立康健新村街道。1993年6月10日,康健新村街道辦事處正式成立。
1994年3月14日,經市政府批準,撤銷徐鎮路、漕溪北路、天平路、永嘉路、楓林路5個街道,設立徐家匯街道和新的天平路街道、楓林路街道。1996年7月25日,經市政府批準,設立凌云路街道。1998年5月28日,撤銷龍華鄉,設立華涇鎮。至此,徐匯區轄湖南、天平、斜土、楓林、徐家匯、田林、虹梅、康健、長橋、凌云10個街道和龍華、漕河涇、華涇3個鎮。
2000年第五次人口普查,徐匯區總人口1064645人,其中:天平路街道78903人、湖南路街道51411人、斜土路街道77027人、楓林路街道112491人、長橋街道119946人、田林街道102661人、虹梅街道40344人、康健新村街道60473人、徐家匯街道97263人、凌云街道96534人、龍華鎮88941人、漕河涇鎮98189人、華涇鎮40462人。
2000年末,徐匯區轄10個街道、3個鎮,367個居委會、16個村委會。2001年2月8日,撤銷龍華鎮,設立龍華街道;撤銷漕河涇鎮,設立漕河涇街道。2002年末,徐匯區轄12個街道、1個鎮,360個居委會、16個村委會。2003年末,徐匯區轄12個街道、1個鎮,345個居委會、16個村委會,人口88.6萬人。
2004年3月25日,徐匯區政府在漕河涇街道辦事處召開南站地區部分街道辦事處行政區劃調整交接儀式。漕河涇街道與康健街道、漕河涇街道與龍華街道、漕河涇街道與長橋街道、康健街道與凌云街道、龍華街道與長橋街道分別簽署了交接協議書(注:本站尚未收集到此次具體調整情況)。2004年6月30日,徐匯區轄12個街道、1個鎮,350個居委會、14個村委會。2004年末,徐匯區轄12個街道、1個鎮,344個居委會、14個村委會,人口88.94萬人,面積54.76平方千米(上海年鑒)。
2005年末,徐匯區轄12個街道、1個鎮:湖南路街道、天平路街道、楓林路街道、徐家匯街道、斜土路街道、長橋路街道、漕河涇街道、康健新村街道、虹梅路街道、田林路街道、凌云路街道、龍華街道、華涇鎮,共有314個居委會、12個村委會。
2007年末,全區面積54.76平方千米,戶籍人口89.18萬人,轄12個街道、1個鎮:天平路街道、湖南路街道、斜土路街道、楓林路街道、長橋街道、田林街道、虹梅路街道、康健新村街道、徐家匯街道、凌云路街道、龍華街道、漕河涇街道、華涇鎮。共有298個社區、10個行政村。區政府駐徐家匯街道漕溪北路336號。
2010年第六次人口普查,徐匯區常住總人口1085130人,其中:天平路街道60533人,湖南路街道36281人,斜土路街道69710人,楓林路街道112400人,長橋街道118872人,田林街道97171人,虹梅路街道34877人,康健新村街道100444人,徐家匯街道92915人,凌云路街道108582人,龍華街道85769人,漕河涇街道97917人,華涇鎮67415人,漕河涇新興技術開發區2244人。
2011年末,徐匯區面積54.93平方千米(上海年鑒),戶籍人口32.66萬戶91.46萬人,轄12個街道、1個鎮,304個居委會。2012年末,徐匯區面積54.76平方千米(上海統計年鑒),常住人口111.12萬人,其中外來人口29.41萬人,轄12個街道、1個鎮,306個居委會。