秦始皇時期,匈奴更加猖獗,為了消除匈奴人的威脅,秦始皇對匈奴發動了的大規模作戰。秦始皇三十三年(前214年),秦始皇令蒙恬率30萬精兵,北擊匈奴,占領“河南地”。為鞏固從匈奴人手中奪來的河南地,秦始皇在黃河沿線設置了大量的防禦設施和行政機構。蒙恬於前214年在此設立了榆中縣,蘭州曆史上的第一次移民也就開始了,專家推測當時大約有萬人來到榆中屯墾戍邊。
那時,榆中縣城的位置在今天的城關區東崗鎮一帶,這個地方靠山靠河,麵臨平原,可以嚴密監視整個河穀平原上人們的一舉一動。
這個城並不大,長不過一百多米,也比較簡陋,其主要的目的是為了防備匈奴人,而且很快這個地方也因秦王朝的滅亡而麵臨戰亂。
漢武帝元狩二年(前121年)春夏,霍去病兩次出擊河西走廊休屠王等匈奴部眾。由於霍去病使用騎兵長距離奔襲的戰術,經常出其不意,故而很快就在河西走廊的戰鬥中取得決定性勝利。就在霍去病出擊匈奴的同時,西漢中央政府也開始大力加強對蘭州黃河以南地區的管轄。前121年西漢將榆中縣西部分出金城縣,金城縣治則在蘭州市西固城附近,這是金城第一次出現。公元前81年,西漢中央政府再次加強了對蘭州及其周邊地區的控製,設立金城郡,轄13縣。
兩漢時期,蘭州一帶的人口變化也比較大。西漢時,金城郡所轄的13縣,有38000多戶,149648人,這是金城人口達到的第一個高峰。隨後不久,蘭州地區戰亂不斷,羌族同中央政府多次在蘭州地區發生拉鋸戰,戰亂導致人口急劇減少。184年,金城郡人口統計僅有3800多戶,18000多人。到三國時期,金城全郡人口更是少得可憐,“戶不滿500”,隻有西漢時的百分之一二了,到晉代金城戶口才略有增長,也隻有2000戶。
蘭州的來曆和皋蘭山有直接關係。如今人們通過測量知道皋蘭山的真正高度為海拔2129.6米,但對皋蘭山的真正來曆卻各執一詞。人們研究認為,皋蘭有兩種來曆:其一來自於少數民族語言,有人認為皋蘭是匈奴語,因為匈奴語稱天為祁連,而西北的皋蘭、烏蘭、賀蘭諸山名都與“祁連”讀音接近,其意思是“高峻”,也有人認為,皋蘭是蒙古語,其意是“飛奔的駿馬”;而更多專家將這些問題連在一起進行考慮,他們認為皋蘭是古羌族的語言,隨著羌族同北方其他少數民族的多次融合交流,皋蘭一詞也就在匈奴、蒙古等民族語言中出現。這些民族把河稱之為皋蘭,那麼皋蘭山就是河邊的大山。其二,有人認為,皋蘭一詞,來自山中生長的一種蘭草,皋蘭以蘭草眾多而得名,但是這一說法依據不足。
隨著戰爭和商貿的需要,建於漢代的金城縣在西魏時被廢,今天的城關區一帶遂成為當時的社會活動中心。金城縣被廢的主要原因是十六國時期,一次次征戰將定西通往蘭州的絲綢之路打開,城關區一帶交通位置日益重要,於是人們就搬遷到了今天的城關區。
隋開皇元年(581年),隋朝正式設立蘭州,“蘭州”由此而來。蘭州總管府最初設在子城(蘭州城關區一帶),後來曾經遷到過金城(今西固城),蘭州管轄子城、金城、狄道(臨洮)三縣。605年,廢蘭州總管府,後複置蘭州總管府。公元619年,唐置蘭州,改子城縣為五泉縣、允吾為廣武縣。其時,蘭州管轄五泉、廣武、金城三縣,州治在五泉。
隋唐時蘭州城隻算個中等城池。關於隋唐時蘭州城的具體位置,專家們的意見分歧比較大。有人認為在中山林一帶;有人說在今天的勝利賓館一帶;還有人說就在今天的省政府。從黃河河道變遷的情況來說,當時黃河河道寬廣,有些河岔就在皋蘭山邊上,因此隋唐時,蘭州城在皋蘭山邊的可能性比較大。有專家建議,應該將這些年的鑽探資料進行分析,這樣就可以知道黃河河道擺動的具體位置,從而推斷出蘭州城的大概方位。
開元二年(714年),蘭州三縣人口不到15000人。到了唐朝安史之亂後,駐守今天青海甘肅兩省的哥舒翰大軍被征調到潼關同安祿山叛軍作戰,整個隴右地區防務空虛,蘭州承受的軍事壓力逐漸增大。唐代宗廣德元年(763年),吐蕃舉兵入侵大震關,占據隴右各地,蘭州城為吐蕃的牧地,直到1081年宋軍攻占蘭州。在這三百多年間,蘭州大部分時間和地域均處在吐蕃和西夏的統治之下。