古為羌地,西漢時置軍事和郵傳據點西平亭,神爵初屬金城郡臨羌縣。武帝元狩二年(公元前121年),漢軍西進湟水流域,漢將霍去病修建軍事據點西平亭,這是西寧建制之始。東漢建安中置西平郡,治西都縣(今西寧市)。(或說,)魏文帝黃初三年(公元222年)擴建為西平郡,開始在此筑城。北宋崇寧三年(公元1104年)改為西寧州,至此“西寧”之稱始于見史。民國十八年(1929年)青海正式建省,治西寧縣,民國三十五年(1946年)以省垣周圍正式成立西寧市。
1949年9月5日西寧解放,9月8日成立市人民政府,為青海省轄市。1950年西寧市為青海省人民政府駐地。 1960年原由省直轄的湟中、大通2縣和互助土族自治縣劃歸西寧市領導。1962年湟中、大通2縣和互助土族自治縣改由省直轄。1966年大通縣(駐橋頭)交由西寧市領導。1985年11月6日,國務院批準(國函[1985]163號)撤銷大通縣,設立大通回族土族自治縣,以原大通縣的行政區域為大通回族土族自治縣的行政區域。1986年3月5日,國務院批準(國函[1996]30號):(1)將西寧市城西區分設為城西、城北兩個區。(2)撤銷西寧市郊區,將原郊區所轄的7個鄉分別劃歸城東、城中、城西、城北4個區管轄。1999年12月5日,國務院批準(國函[1999]142號)將海東地區的湟中縣、湟源縣劃歸西寧市管轄。
1999年末,西寧市總面積3456平方千米,總人口148.62萬人。轄4區(城東區、城中區、城西區、城北區)、1縣(大通回族自治縣),共有23個街道、11個鎮、22個鄉,370個村委會、216個居委會、104個家委會。其中,市區面積350平方千米,建成區面積55平方千米,市區人口91.91萬人。(青海省志:1999年末,總面積3350平方千米,總人口1139847人,其中市區面積約350平方千米,人口719420人)(以上統計資料不含湟中、湟源兩縣數據)
2000年第五次人口普查,西寧市總人口1849713人,其中:城東區270268人、城中區148521人、城西區225412人、城北區210265人、大通縣416968人、湟中縣448465人、湟源縣129814人。
2001年1月16日,青海省政府青政函[2001]7號文批復:①撤銷大通回族土族自治縣新莊鄉,設立新莊鎮;撤銷多林鄉,設立多林鎮;撤銷長寧和后子河2鄉,合并設立長寧鎮;撤銷清平鄉,并入黃家寨鎮;撤銷崗沖和景陽2鄉,合并設立景陽鎮;撤銷藥草鄉,并入塔爾鎮;撤銷新城鄉和無朔鎮,將其中6個村(老營莊、毛家寨、賀家寨、毛家溝、大灣、水泉灣)并入橋頭鎮,另4個村(新添堡、上堡、鮑東、鮑西)并入長寧鎮。②撤銷湟中縣上五莊回族鄉,設立上五莊鎮;撤銷總寨和升平2鄉,其中將總寨鄉的18個村(王斌堡、張家莊、清河、清水河、總南、總北、謝家寨、杜家莊、泉爾灣、新莊、王家山、逯家寨、新安、星家、元堡子、享堂、塘馬坊、陳家窯)和升平鄉的5個村(莫家溝、上細溝、下細溝、上野牛溝、下野牛溝)合并設立總寨鎮;撤銷坡家和甘河灘2鄉,與大才鄉的黃二村合并設立甘河灘鎮;撤銷攔隆口、四營和拉沙3鄉,其中將攔隆口鄉的25個村(攔隆口、扎什營、新村、巴達、班仲營、端巴營、西岔、上魯爾加、下魯爾加、白楊口、東拉科、南門、上莊、前莊、中莊、尼隆臺、卡陽、白崖、尼隆口、橋西、千東、千西、上寺、鐵家營、上營)、四營鄉的11個村(伯什營、麻子營、白崖、攔一、攔二、尼麻隆、圖巴營、合爾營、后河爾、上紅土溝、下紅土溝)和拉沙鄉的7個村(紅林、邦隆、南門、占嶺頂、民聯、峽口、民族)合并設立攔隆口鎮;撤銷上新莊鄉和馬場藏族鄉、合并設立上新莊鎮;撤銷田家寨和什張家2鄉,合并設立田家寨鎮;撤銷共和、維新和盤道3鄉,合并設立共和鎮;撤銷李家山鄉,與四營鄉的塔爾溝村合并設立李家山鎮。③撤銷湟源縣大華鄉,設立大華鎮。④將湟中縣總寨鄉的4個村(徐家寨、東村、西村、陳家灘)并入魯沙爾鎮;拉沙鄉的8個村(北溝、中村、楊家臺、年家莊、尕爾加、目爾加、洛爾洞、拉卡山)和攔隆口鄉的8個村(合爾營、奔巴口、丹麻寺、油房臺、玉拉、幸福、沙窩爾、初哇)并入多巴鎮;升平鄉的4個村(上阿卡、下阿卡、秋子溝、牙加)并入土門關鄉。
2001年末,全市轄23個街道、26個鎮、26個鄉、6個民族鄉,128個社區、28個居委會、926個村(牧)委會。
2003年末,全市總人口1783713人。轄23個街道、26個鎮、24個鄉、6個民族鄉,934個村(牧)委會、165個社區居委會。
2004年7月,西寧市城北區區劃調整,街道辦事處由4個調整為3個:撤銷三其街道,并入馬坊街道。
2006年8月,西寧市新增1個鎮,全市鄉鎮總數由56個(26鎮30鄉)調整為50個(27鎮23鄉)。湟中縣撤銷西堡鄉,設立西堡鎮;撤銷大源鄉,并入魯沙爾鎮;撤銷丹麻鄉,并入田家寨鎮。湟源縣撤銷塔灣鄉,并入申中鄉;撤銷城郊鄉,分別并入城關鎮、東峽鄉、和平鄉。大通縣撤銷西山鄉,并入青山鄉;撤銷窎溝鄉,并入朔北藏族鄉。
2008年,西寧市委、市政府決定將城南新區(包括總寨鎮101平方千米行政區域和城西區南川西路辦事處26平方千米行政區域)納入城中區管轄,調整后的新中區面積增至151平方千米,人口約28萬人。