大理,即大治之意。一說大理系傣語,“大”意為“地”。一說大理為撣語“穩渡”之意。先秦屬西南夷。西漢武帝元封二年(前109)置葉榆縣,隸屬益州郡。東漢時屬益州永昌郡葉榆縣。三國蜀漢屬益州云南郡葉榆縣。西晉時屬寧州云南郡葉榆縣。東晉屬寧州河陽郡。南朝屬東河陽郡。北朝周屬南寧州。隋屬南寧州總管府。唐初屬劍南道姚州轄河東州。開元二十四年(738),南詔統一洱海地區,建立南詔國,定都太和城。大歷十四年(779)建都羊苴咩城(今大理市)。后晉天福二年(937),通海節度使段思平建立大理國,建都羊苴咩城。
元憲宗七年(1257)置大理上、下二千戶,屬大理萬戶;置趙睒千戶,屬大理下萬戶。至元十一年(1274)趙睒千戶改置趙州;至元二十六年(1289)大理上、下二千戶合并改置太和縣。太和縣、趙州均屬大理路軍民府。明洪武十五年(1382),趙州更名趙喜州,尋復更名趙州。太和縣、趙州均屬大理府。清初沿明制,太和縣、趙州均屬大理府。
民國2年(1913)4月,太和縣改為大理縣,趙州改為趙縣。同年迤西道改為滇西道,大理縣、趙縣均屬滇西道。同年,賓川縣海東、海南2耆劃歸趙縣。民國三年(1914)1月,趙縣因與直隸省轄縣重名,更名為鳳儀縣。同年滇西道改為騰越道,大理縣、鳳儀縣屬騰越道。民國8年(1919),鳳儀縣海東、海南劃回賓川縣。民國18年(1929),廢騰越道,大理縣、鳳儀縣直屬省。民國37年(1948),大理縣、鳳儀縣屬云南省第十一行政督察區(駐大理縣)。民國38年(1949),大理縣、鳳儀縣屬云南省第八行政督察區(駐姚安縣)。
1950年,設立下關區,以鳳儀縣下關鎮和大理縣的鄰近下關鎮的地區為其行政區域。下關區及大理縣、風儀縣由大理專區領導。1950年6月,將原屬賓川令山分區的普和、洞壁、大湖西劃歸鳳儀縣。1951年3月14日,政務院批準:撤銷下關區,設立下關市,屬大理專區。1955年1月3日,國務院批準:下關市改為省轄市,由大理專署領導監督(注:實際下關市改為省轄市未執行,仍為大理專區領導)。1955年9月,原屬賓川的上河、向陽、文武、南村4鄉,面積5.16平方千米,劃歸鳳儀縣。
1956年11月16日國務院全體會議第40次會議決定:撤銷大理專區,設置大理白族自治州,下關市、大理、鳳儀縣屬大理州。1959年8月,原屬賓川大營公社的挖色、大城、小城、海印4個管理區(一說為挖色、大城、小城、海印、康廊),面積7.67平方千米,劃歸大理縣。1960年9月13日國務院全體會議第103次會議通過:設立大理市,撤銷下關市、大理縣、鳳儀縣、漾濞縣,以原下關市、大理縣、鳳儀縣、漾濞縣的行政區域合并為大理市的行政區域,大理市屬大理州。
1962年3月27日國務院全體會議第115次會議決定:撤銷大理市。恢復大理縣,以合并于大理市的原大理縣、鳳儀縣、漾濞縣行政區域為大理縣的行政區域;恢復下關市。以合并于大理市的原下關市行政區域為下關市的行政區域;下關市、大理縣屬大理州。1962年10月27日國務院全體會議第117次會議決定:設立漾濞縣,以合并于大理縣的原漾濞縣行政區域為漾濞縣的行政區域。1983年9月9日國務院【國函字189號】批復:撤銷下關市、大理縣,設立大理市(縣級),以下關市、大理縣的行政區域為大理市的行政區域,大理市屬大理州。
1996年,大理市面積1457平方千米,人口約46萬人。轄2個街道、2個鎮、7個鄉、1個民族鄉:下關街道、大理街道、喜洲鎮、鳳儀鎮、灣橋鄉、銀橋鄉、城邑鄉、七里橋鄉、市郊鄉、海東鄉、挖色鄉、太邑彝族鄉。市政府駐下關街道。
1998年6月28日,云政復[1998]47號批復同意:撤銷大理街道、城邑鄉,合并設立大理鎮;撤銷下關街道、市郊鄉,合并設立下關鎮。至此,大理市轄4個鎮、5個鄉、1個民族鄉。
2000年第五次人口普查,大理市常住總人口521169人,其中:下關鎮174801人,大理鎮56259人,鳳儀鎮75763人,喜洲鎮55959人,海東鄉21266人,挖色鄉18218人,灣橋鄉22122人,銀橋鄉26309人,七里橋鄉33842人,太邑彝族鄉8315人,大理經濟開發區28315人。
?年,挖色鄉、灣橋鄉、銀橋鄉、七里橋鄉撤鄉設鎮。2001年10月,海東鄉撤鄉設鎮。至此,全市轄9個鎮、1個民族鄉:下關鎮、大理鎮、喜洲鎮、鳳儀鎮、灣橋鎮、銀橋鎮、七里橋鎮、海東鎮、挖色鎮、太邑彝族鄉。
2003年12月,原洱源縣江尾鎮和雙廊鎮劃歸大理市管轄,江尾鎮更名為上關鎮(省政府2003年12月22日批準)。2004年1月,將洱源縣的江尾鎮、雙廊鎮劃歸大理市管轄,江尾鎮更名為上關鎮。2005年,撤銷七里橋鎮,將原七里橋鎮洱濱、太和、劉官廠、大莊4個村委會劃歸下關鎮管轄,將上末、陽和、下兌3個村委會劃歸大理鎮管轄(省政府2005年10月24日批準)。
2006年末,大理市總面積1815平方千米,總人口58.98萬人。設10鎮1鄉,即鳳儀鎮、海東鎮、挖色鎮、雙廊鎮、上關鎮、喜洲鎮、灣橋鎮、銀橋鎮、大理鎮、下關鎮和太邑彝族鄉。另設一個省級經濟開發區和一個省級旅游度假區。
2010年第六次人口普查,大理市常住總人口652045人,其中:下關鎮235305人,大理鎮82566人,鳳儀鎮61890人,喜洲鎮54939人,海東鎮21274人,挖色鎮16873人,灣橋鎮20784人,銀橋鎮28002人,雙廊鎮16472人,上關鎮38922人,太邑彝族鄉7581人;(大理經濟開發區)天井辦事處45432人,滿江辦事處22005人。
2010年末,全市總人口607478人,其中白族人口412103人,白族占總人口的67.84%。轄10鎮1鄉、1個省級經濟開發區(省級高新技術開發區)、1個省級旅游度假區,共有111個行政村、31個社區。