趙充國是騎兵出身,補選為羽林衛士,他從小就學習兵法,並通曉四方少數民族的事情。後來他跟隨李廣利攻打匈奴,大軍被匈奴人包圍,漢軍因為缺少糧食,死傷很多。趙充國帶領100多個人拚死殺開一條血路,帶領大軍衝出了包圍圈,他也因此身受20多處創傷。李廣利向朝廷匯報了情況,漢武帝下令把趙充國帶來,親自查看了他的傷勢,驚歎不已。於是漢武帝拜他為中郎,讓他擔任車騎將軍長史一職。

漢宣帝即位後,趙充國被派到邊疆駐守,他在任期間,匈奴一直不敢前來騷擾。後來光祿大夫義渠安國出使羌族部落,羌族首領希望能渡過湟水到北岸漢族人不耕種的地方放牧。義渠安國把這事上報給了皇帝。趙充國認為此舉不妥,彈劾義渠安國玩忽職守。後來羌族人強渡湟水,在北岸放牧,當地的官員無法禁止,羌族各部落首領還聚集在一起,解除仇約,相互結盟。漢宣帝聽說這事後向趙充國詢問,趙充國回答道:“羌族人之所以好控製,是因為他們各個部落之間不團結。30多年前,西羌叛亂時,也是像今天這樣解除仇約,相互結盟,然後和朝廷對抗,朝廷花了五六年的時間才把叛亂平定下來。而且以前也發生過羌族和匈奴聯合起來對抗朝廷的事。不久前我聽說匈奴在西方碰了釘子,於是多次派人賄賂西域各國,想離間他們和漢朝的關係,但沒有成功。我懷疑匈奴現在派使者到羌族部落裏麵,企圖故伎重演。所以我擔心羌族人還會有新動向,我們要在事情沒發生之前做好防備。”一個多月後,羌族首領果然派人向匈奴借兵,準備攻打西域。朝廷派遣義渠安國再次出使羌族各部落,讓他區分一下哪些部落企圖反叛,哪些部落站在漢朝一邊。而義渠安國把羌族首領30多人召集起來後,認為他們都特別凶狠狡猾,把他們全部殺掉了,又派兵攻打那些部落的百姓,殺了1000多人。這件事激怒了羌族人,許多本來已經歸附漢朝的羌人認為漢朝不守信用,於是發動叛亂。義渠安國派兵與羌人交戰,吃了敗仗。

當時趙充國已經70多歲了,漢宣帝認為他已經老了,於是派人去詢問誰可以率兵鎮壓叛亂。趙充國說:“沒有人能超過我的了。”

趙充國抵達前線後,先出妙計渡過了黃河,然後又識破了敵人的誘兵之計。打仗的時候,他經常派出騎兵派到遠處去偵察,不做好作戰的準備絕不行動。大軍休息的時候,一定先把防禦工事弄得足夠堅固,而且特別愛惜士兵,將士們都特別敬服他。敵人多次挑戰,他都堅守不出。後來抓到一個俘虜,那俘虜交待說羌人的首領們好幾次都互相埋怨:“早就告訴你們不要造反,這下好了,皇上派趙將軍前來鎮壓,聽說他已經八九十歲了,特別善於用兵打仗。現在想和他決一死戰,有這個可能嗎?”

朝中大臣們反對趙充國的作戰計劃,漢宣帝也下詔責備他,趙充國上書辯解,他認為將領在外麵領兵打仗,應該根據當時當地的形勢和利弊來製定計劃,而且應該堅守自己的主張,並再次陳述了自己的作戰計劃。不久皇帝同意了他的意見。

射士畫像磚拓片

趙充國將軍隊開到先零羌的地盤上,先零羌防守很鬆懈,遠遠看到漢朝大軍就丟棄輜重逃跑。由於道路狹窄,趙充國下令大軍慢慢前進。有人建議加快行軍速度,趙充國說:“窮寇莫追,現在我們緩慢前進,他們就會忙著逃走而不會掉過頭來攻擊我們,如果我們加快速度的話,他們看到沒有逃走的希望,就會來攻打我們以求得一絲生機。”大家都同意他的看法。果然不出趙充國所料,敵人在渡河的時候因為過於慌亂而淹死了好幾百人,投降和被殺的有500多人,漢軍俘獲牲畜10多萬頭,車輛4000多,取得了重大勝利。漢軍乘勝進攻另一個部落,將其逼降。

就在這一年的秋天,趙充國病重,在病**他還多次向皇帝上書,提出與少數民族和睦相處的政策主張,並建議實行屯田。後來皇帝向他谘詢誰繼承他的位置時,他指出眾人推薦的辛湯不是合適的人選。後來辛湯還是擔任了護羌校尉,結果因為酗酒得罪了羌人,導致羌人再次叛亂,最終應驗了趙充國的話。