夏商周时期,兰州地区为羌戎部族活动地区。公元前771年,西戎攻占镐京杀周幽王,周平王东迁,因秦襄公救周有功,被封为诸侯。此后,秦国虽然逐渐收复了被西戎占据的关中地区,但仍被中原诸侯视为戎狄。至公元前750年,秦文公统一关中,秦人与周遗民开始共处,受周文化影响,逐渐脱离游牧生活,转向定居农业,向华夏化发展。到西周灭亡后,秦人在陕西宝鸡建立了戎化国家,并逐步融合了被征服的西戎(藏缅族群的氐羌、吐火罗)和周遗民。史载春秋时,秦穆公用由余之策,西伐诸戎,“并国十二,开地千里”(《史记·秦本纪》),“秦所开地,陇西、北地是也”(唐张守节《史记正义》),“西戎八国服于秦”(《史记·匈奴列传》)。“八国中有‘翟、之戎’,翟戎居今临洮县一带,戎居于今陇西县一带。包括翟戎、戎在内的‘西戎八国’这时只是‘服于秦’,还没有为秦所灭”。(《兰州市志·建置区划志》)到战国时,“西戎八国”完全被秦国占领,经过民族文化的交汇融合,至战国晚期最终形成了融为一体的关陇地区华夏族。秦人不断向西开拓疆域,秦孝公时,秦国已将其西境推进到黄河以南的洮水流域。至秦昭王时(前306年~前251年),秦已占有陇西、北地、上郡,并修筑长城以拒胡人入侵。秦昭襄王二十七年(前278年),秦在陇山以西设置陇西郡,并将郡治设于与今兰州接壤的狄道(今甘肃临洮县),其势力范围已接近今兰州地区。
秦始皇时,秦全力向东用兵,兼并山东六国,无暇顾及西方,所以未向西方羌人居地用兵,因此兰州黄河以北、以西的羌戎部族能够较快发展。秦统一六国后,于始皇三十二年(前215年),派蒙恬北击匈奴,占领“河南地”。次年自兰州始,沿黄河南岸向东至阴山(在今内蒙古),设县44个,筑城防守,移民实边。在兰州设榆中县,筑榆中城。兰州黄河以南、以东地区归入秦王朝版图,属秦陇西郡。秦首次在今兰州市城关区东岗镇一带设榆中县,明确了秦在兰州地区的统治,也初步确定了今兰州黄河以南边塞军事重镇的地位。此时,今兰州黄河以南、以东地区全部为秦所有,以北、以西的皋兰、永登、红古等地仍由羌戎部族占据。秦占据兰州黄河以南、以东后,原居住的羌人一部分与迁徙来的秦人共处而逐渐华夏化,一部分退居以北、以西地区,仍然过着游牧生活。
秦末中原大乱,匈奴乘中原战乱之机迅速南下,越过长城,对中原王朝形成极大威胁。西汉初,匈奴领袖冒顿单于以其三十余万精锐骑兵,重新占领河南地,击走月氏,占据黄河以南至战国秦长城间的大片土地,并与兰州以西河湟地区的羌人联合,对汉王朝的西北地区形成强大的包围。当时,西汉王朝刚刚建立,国力十分虚弱。面对这种内部残破的局面和外部强大的军事威胁,汉王朝难以与匈奴争锋,因此只好采取妥协的政策以休养生息,积极积蓄力量准备适时反击。于是刘邦与冒顿单于约为兄弟之国,并以“和亲”换取边境安宁。
在西汉建国的前六七十年间,匈奴的势力逐渐变得更加强大。匈奴对汉朝边境的侵扰日益加剧。汉高祖六年至汉武帝元光二年(前201年~前133年)间,匈奴骑兵连年南下,虏掠人畜,劫夺财物,践踏庄稼,汉朝北方广大地区受到严重危胁。而西汉王朝经过高祖、文帝、景帝数十年的休养生息,至武帝时,国力已空前强盛,对匈奴反击的条件已经成熟。于是汉王朝制定了以武力防御和抗击匈奴的方针,开始了对匈奴的战争。元朔二年至元狩四年(前127年~前119年),汉武帝任命卫青和霍去病为大将,先后发动了河南、河西和漠北三次大规模的战役,北击匈奴,却敌千里。
河南战役之前,匈奴一直将其作战重点放在西汉的东北边境地区,以自己的左部兵力,于西汉防御兵力薄弱的地带行动,以便达到有限的作战目的。武帝元朔二年(前127年)春,匈奴大举入袭西汉东北的上谷、渔阳两郡,杀掠人畜。武帝抓住战机,立即命卫青和李息率军出云中(今内蒙古托克托地区),沿黄河北岸西进,避实击虚,对河套及其以南地区的匈奴军进行远距离的迂回包围。斩杀和捕获匈奴军5500多人,牛羊百万余头,全部收复了河南地区,白羊王、楼烦王仅率少数卫骑逃走。卫青大获全胜后,率军从陇右地区胜利回师。这一年,西汉重新设置了榆中县,属陇西郡。
元狩二年(前121年),西汉发动了对匈奴的河西战役。包括兰州在内的河西地区是通往西域诸国的咽喉地区,也是西汉王朝经略西北地区的关键性地区,战略地位十分重要。当时,由于河西地区的阻隔,西汉王朝统一西北的战略意图一直无法实现。如果西汉王朝夺回河西地区,就既能解除匈奴从西方对汉王朝的威胁,又可斩断匈奴与西部羌人部族联盟,极大地削弱匈奴的势力范围,对西汉王朝统一西域地区极为有利。从这一全局性的战略意图考虑,汉武帝先置匈奴进袭最厉害、遭受战争灾难最深的右北平、上谷、代郡、雁门等地区于不顾,而决定先向兵力相对薄弱,但却对西汉腹心地区威胁最大的西部匈奴右部进击,并沿河西走廊节节向西北方向推进,争取一举消灭河西地区的匈奴势力,斩断匈奴的右臂,因此决定首先发动河西战役。
河西战役分两次作战,均由骠骑将军霍去病指挥。关于霍去病的进军路线,《史记·骠骑列传》、《史记·匈奴传》、《汉书·霍去病传》记载均十分简略,只言“出陇西”、“过焉支山千余里,合短兵,麋皋兰下”。但据冯克诚、田晓娜主编的《中国通史全编》上册第576页(青海人民出版社1998年版)说,第一次是元狩二年春三月,汉骠骑将军霍去病率轻骑万人,从陇西出塞(今临洮地区),迅速进军至金城(今兰州地区),渡过黄河,至令居(今永登西),沿庄浪河北上,越乌鞘岭,一路转战6天,扫除了匈奴5个部落王国。接着西行过焉支山(今甘肃山丹县境之大黄山,亦称燕支山),疾进深入匈奴地千有余里,大破匈奴。斩杀匈奴折兰王、卢胡王,“得胡首虏八千余级,得休屠王祭天金人”。(《前汉书》卷九四上《匈奴传》)河西走廊遂纳入中原王朝版图。第二次是同年夏天,汉王朝乘胜出击,命霍去病再次进军河西。此次从北地出发,至居延,然后南下打到祁连山,俘、斩匈奴三万多人。这年秋,匈奴昆邪王杀休屠王,并其众合四万余人来降,汉在陇西、北地、上郡、朔方、云中等沿边五郡故塞之外予以安置,称“五属国”。从此,兰州黄河以西、以北的大片土地完全归入了汉朝的版图,兰州的边塞军事重镇地位正式被确定下来。当时的兰州属陇西郡故塞之外,也可能安置有匈奴降户。此后“金城河西并南山(今祁连山)盐泽(今新疆罗布泊)空无匈奴”。(《前汉书·张骞传》)
在元狩二年(前121年)霍去病两次攻打匈奴,占领了今兰州地区后,析榆中县为金城、勇士两县,命大行李息在今西固城区筑金城。西固城区位于黄河兰州市区段黄河右岸的二级阶地上,为黄河河谷盆地。城池北临黄河天堑,渡河西北行可达河西走廊;溯湟水西行,可达今青海。南依巍峨高山,东邻秦代所筑的榆中县城,经榆中县东行可达罕(今临夏),进而至陇西郡治临洮。西接河湟地区,与羌戎接壤,为进攻羌戎和防御羌戎进犯的最前线的边塞。不论从军事战略角度,还是从道路交通角度看,都是一座关隘性城池,进可攻,退可守,道路可以四通八达。正因为有如此巨大的军事价值和交通作用,所以汉金城筑得非常坚固,故有“金城汤池”之说。