西北、西南地區即今青海東部、甘肅南部、四川西部以至雲南貴州一帶,生活著羌族和總稱為「西南夷」的許多兄弟民族。他們有的經營農業,居住城邑,已有君長;更多的從事畜牧,隨水草遷徙,還沒有建立君臣統治關係。羌族是我國西方的一個古老民族,長期生活在西海(今青海湖)周圍,以畜牧業為主,略有一點初級農業。匈奴統一北方後,羌人也受其統治。
漢景帝時,羌族首領留何率領部分羌人歸附,要求為漢王朝守衛隴西(治狄道,今甘肅臨漲)邊塞,於是逐漸東遷到臨洮、氐道、羌道(今甘肅岷縣、禮縣、容昌)一帶居住。漢武帝驅逐匈奴,開通河西四郡,漢人勢力越過黃河、湟水地區,建立起令居(今甘肅永登西)、安故(今甘肅臨洮南)、袍罕(今甘肅臨夏東)等據點,隔斷了匈奴和羌人的聯繫。
於是羌人諸部聯合起來並同匈奴聯絡合兵十餘萬圍攻鄰居等據點,打算逐走漢人。元鼎六年(前111),武帝派李息、徐自為等率軍十萬打敗了羌人,開始設置護羌校尉統管羌族諸部。羌人退出皇水地區回到西海周圍,武帝便遷徙內地漢人前往充實河西。
宣帝時羌人又逐漸渡過湟水,並與匈奴通謀,打算爭奪河西,羌族先零、罕開等部首領200多人聚會解除舊仇、結盟訂約,準備聯合反漢。神爵元年(前61),漢王朝派去的使者處置失當,先零羌首領楊玉等挾持罕開羌及諸小種起兵攻打城邑,殺逐漢官。
消息傳來, 76歲的老將,趙充國,自告奮勇承擔重任,率精兵萬騎深入據險自守,曉以威信,分化招撫,罕開羌及諸小種,孤立打擊先零羌。趙充國不顧朝臣多數贊同大軍猛攻斬盡殺絕的主張和宣帝嚴令進兵的斥責,以國家長遠利益為重,不計個人安危,反覆上奏分析形勢利弊,堅持區別對待、分化瓦解諸羌,以政治招降為主、軍事打擊為輔,持重守險、以逸待勞、審慎進兵、不求速勝等原則。為免除後勤供應困難,,利於持久,還創議以士兵萬人屯田湟中,產糧自給。
宣帝將趙充國的建議交群臣討論,開始時只有少數人贊成,後來絕大多數人都支持了。經過一年多,羌人陸續歸順,堅持反抗的羌人大約只剩下4000人。於是趙充國建議罷兵,其後不久,歸降的羌人共斬帶頭鬧事的先零羌首領楊玉等人,餘黨4000多人盡降,局勢發展完全如趙充國的預計。於是漢王朝設置金城屬國以安置降順的羌人,其後他們就在這一帶與漢大雜居。