北宋時,蘭州是西夏、宋、金交戰的前線,出於防守的需要,人們將修築城池視作頭等大事。不僅在蘭州修築了大量的堡寨,而且也對蘭州城進行了多次整修。
北宋時期,第一次修補是在元豐四年(1081年)。這年6月,宋朝發動五路大軍進攻西夏,7月,詔李憲“相度置船筏於洮河上遊,相機率兵東下……”8月,李憲率軍越過馬銜山,進占龕穀寨、三角城,然後從夏官營取道桑園峽進攻蘭州。9月2日,進占蘭州。宋朝派李浩守蘭州,同時開始修築蘭州及其周邊的城寨。當時的蘭州城位於解放前蘭州城的西南角,這個時候的蘭州城比較小,東西600餘步,南北300餘步。
1083年,人們再次整修隋唐時修建的蘭州城。由於隋唐時期的蘭州城主要靠近蘭山,距黃河比較遠,不能充分利用黃河天塹,於是人們在瀕臨黃河的地方展築蘭州城,廢舊南城。同時依照百步法,設定蘭州守城人數為6456人,整個蘭州共計有8000名駐軍。後來為增加防禦力量,宋哲宗紹聖四年(1097年)時,苗履建議修複金城關,並在黃河上架設浮橋。這年4月,蘭州軍事推官鍾傳,趁著宋夏在靈平會戰,於6天之內在黃河上架設浮橋,修築金城關。後來苗履再次增築蘭州北城。宋徽宗時(1104年),人們再次增築蘭州北城,由於戰亂不斷,這個時候蘭州隻有981人。
丈,池深一丈五尺,周六裏三分,三麵土築,麵磚,下臨黃河,建四門,上各建層樓戍鋪”。
元代蘭州基本上屬於內地,城市的防禦體係在人們心中逐漸淡化。到了明代,由於明政府放棄了嘉峪關以西的地方,再加上明政府同漠北的蒙古族長期處於戰爭狀態,因而人們多次修築蘭州城,這是蘭州城池大發展的時候。解放前的蘭州城,基本上就是人們在明清基礎上擴建而成的。
明洪武十年(1377年),蘭州衛指揮同知王鑄,在宋、元蘭州城的基礎上,增築蘭縣城,東西長一裏二百八十步,南北寬一裏八十二步,高三丈五尺,闊二丈六尺。開四座城門:東為承恩門,南為崇文門,西為永寧門,北為廣源門。城門之上,均建城樓。
從這之後到解放前,蘭州城經曆了多次的維修和擴建。明宣德時(1426年~1435年),僉事卜謙、指揮戴旺修築外廓,共十四裏二百三十一步。明英宗正統十二年(1447年),都指揮李進增築承恩門外廓,自西北至東北,共99丈餘,並辟城門九座:東關迎恩門,即今東方紅廣場東口;東北為廣武門,在今秦安路與金昌路相交處;再往東北為天塹門,在今靜寧路北口;南為拱蘭門,在今舊酒泉路蘭州卷煙廠稍南;東南為通遠門,在今靜寧路與暢家巷西口相交處;西南為永康門,在今勝利飯店與市交通局樓之間;再往西南為靖安門,在今臨夏路通下溝路口稍南;西為袖川門,在今臨夏路西口清真寺西南側。城門上皆建城樓。
明孝宗弘治十年(1497年),都指揮梁喧築東廓外牆360丈。明神宗萬曆八年(1580年),副使李堯德用磚石砌北城牆,城堞均用磚砌築。
清代也曾多次修築蘭州城。康熙六年(1667年)、二十四年(1685年),乾隆三年(1738年)、三十八年(1763年),嘉慶十年(1805年)等都進行過修築。
道光十三年(1833年)陝甘總督楊遇春再次修築後,將部分城門改名:承恩門改為來煦門、永寧門改為鎮遠門、崇文門改為皋蘭門,外廓(即關城)改天塹門為慶安門、天水門為通濟門,永康門為安定門、靖安門為靜安門。同治元年(1862年),護陝甘總督恩麟為四內城門各增築一座甕城重門,加強和改善了對於內城的防守態勢。
至此清蘭州城基本定形,共計內城周長6裏200步,有10座敵台上建有敵樓,建有垛口1929個;外廓周長18裏123步,有6座敵台上建敵樓,有垛口3920個。
解放後,隨著城市經濟建設的發展,再加之城牆已不能抵禦各種現代化的重武器,又因城牆的作用日見衰微,在北京拆除城牆的帶動下,蘭州也拆除了城牆。當時,有幾十萬人參與了拆牆,蘭州城池的最後一段城牆也於2002年拆除。現在人們已經看不到蘭州城池昔日的模樣了。