元平元年四月癸未日,汉昭帝驾崩,没有子嗣继位。大将军霍光遣邴吉等迎立昌邑王刘贺为帝。但刘贺“荒淫无行,失帝王礼宜,乱汉制度”,在刘贺即位十余日时,霍光已与张安世谋划废之,最后只做了二十七天皇帝,于六月癸已日,被以霍光为首的大臣废黜。
太仆杜延年的儿子杜佗素与刘病已相友善,杜延年知曾孙德美,劝霍光、张安世立其为帝。邴吉奏记霍光说,“我私下里访听老百姓的议论,辨察他们说的事情,了解到到现在为官的那些宗室诸侯,在民间都没有什么名声。而遵奉武帝遗诏所供养的名叫病已的武帝的曾孙,现在居住在宫庭外的外家中,我以前让他居住在郡官邸时见到他还很年少,到现在他已十八九岁了,精通经术,有很高的才能,行止安闲而气节操守平和,希望将军仔细认真地商议此事,并参考占卜的结果,如不便一下使他显贵,可以先让他入宫服侍皇太后(上官太后),使天下人明白地知晓他的好处,然后再决定重大的决策,天下人将很幸运感激!”
七月,霍光奏议说:“礼制,人重视血统关系所以就尊重自己的祖先,尊重祖先就会敬奉祖宗的事业。昭帝无嗣,应选择支子孙贤德的为继承人。武帝曾孙名病已,有诏令由掖庭进行照管。至今已十八岁。从师学习操行节俭、慈仁而爱人,可以作昭帝的继承人。奉承祖宗大业,统驭天下臣民。”上官太后表示同意。派宗正刘德到曾孙尚冠里住处,浣洗、赐御府衣冠,太仆用軨猎车奉迎曾孙,先到宗正府斋戒行礼。
刘病已进入未央宫,朝见皇太后,先封为阳武侯,随即群臣奉上玺、绶,刘病已即皇帝位,谒高庙,是为汉宣帝。九月,大赦天下。十一月壬子日,立许平君为皇后。
汉宣帝即位后,内心忌惮刘贺,元康二年,汉宣帝派使者赐给山阳太守张敞玺书说:“诏令山阳太守:要谨慎防备盗贼,注意往来过客,不要泄露这条诏令!”张敞于是分条禀奏刘贺平日行为,说明他的废亡之状,说:“臣敞地节三年五月任职山阳,故昌邑王住在从前的宫中,在里面的奴婢一百八十三人,关闭大门,开小门,只有一个廉洁的差役领取钱物到街上采买,每天早上送一趟食物进去,此外不得出入。一名督盗另管巡查,注意往来行人。用故王府的钱雇人为兵,防备盗贼以保宫中安全。臣张敞屡次派官员前去察看。地节四年九月中,臣张敞进去察看他的情况,故昌邑王二十六七岁,为人脸色很黑,小眼睛,鼻子尖而低,胡须很少,身材高大,患风湿病,行走不便。穿短衣大裤,戴着惠文冠,佩玉环,插笔在头,手持木简趋前谒见。臣张敞与他坐在庭中谈话,看到他的妻子奴婢。我想用话触动他,观察他的心意,就用恶鸟试探他,说:‘昌邑有很多猫头鹰。’故昌邑王答道:‘是的,以前我西行到长安,根本没有猫头鹰。回来时,东行到济阳,就又听到猫头鹰的叫声。’我看到他的子女持辔,故昌邑王跪着说:‘持辔的母亲,是严长孙的女儿。’我才知执金吾严延年字长孙,女儿罗紨,以前是故昌邑王的妻子。观察故昌邑王的衣服、言语、举动,白痴呆傻。十六个妻子,二十二个儿女,其中十一个儿子,十一个女儿。我冒昧上报他们的名籍与奴婢、财物簿册。臣张敞以前上书说:‘昌邑哀王的歌女、舞女张修等十一人,没有子女,又不是姬妾,只是良人,没有官名,昌邑哀王死后应当放她们回家。太傅豹等擅自强留,认为是昌邑哀王园中人,我认为按法不当留,请求放她们回家。’故昌邑王听到后说:‘宫中人守陵园,病了的应当不治疗,互相杀伤的应当不处罚,本来就想让她们快点死,太守为什么却想放了她们呢?’可见他的天性就是喜好败乱伤亡,最终也看不到一点仁义。后来丞相御史把我的上书奏上,奏折被批准。她们都被送回家。”汉宣帝因此知道刘贺不值得忌惮。
元康三年(前63年)三月,汉宣帝下诏说:“曾闻舜弟象有罪,舜为帝后封他于有鼻之国。骨肉之亲明而不绝,现封故昌邑王刘贺为海昏侯,食邑四千户。”侍中、卫尉金安上书说:“刘贺是上天抛弃的人,陛下至仁,又封为列侯。刘贺是个愚顽废弃之人,不应该奉行宗庙及入朝行朝见天子之礼。”奏折得到汉宣帝批准。刘贺便前往封国豫章。
扬州刺史柯奏刘贺与故太守卒史孙万世来往,孙万世问刘贺:“从前被废时,为什么不坚守不出宫,斩大将军,却听凭别人夺去天子玺印与绶带呢?”刘贺说:“是的。错过了机会。”孙万世又认为刘贺将在豫章封王,不会久为列侯。刘贺说:“将会这样,但不是应该谈论的。”有关部门审讯核实,请求逮捕。汉宣帝诏令削去刘贺三千户食邑。神爵三年,刘贺去世。
宣帝即位第二年汉朝发铁骑16万余兵马,分五路攻打匈奴,这是两汉400年最大规模的一次对外骑兵出征。同时,派遣校尉常惠前往乌孙,节制乌孙骑兵5万余,与汉军东西并进,形成一个巨大的钳形攻势,夹击匈奴。匈奴畏惧汉军,惊惶西逃恰遇乌孙兵,一场激战大败而归,常惠因此封为长罗侯。
第二年冬,匈奴再袭乌孙,遇大雪,生还者不及十分之一,再加乌孙、乌桓与丁令的乘势攻击,国人亡十分之三,畜亡十分之五,国力大为削弱。不久,汉军3千骑击匈,都能捕得几千匈人而还,匈奴亦不敢报复,而且更向往与汉和不是战了。
神爵二年,统治西域的日逐王先贤掸与新任单于握衍朐鞮素有矛盾,关系不睦,带着数万人投降汉朝。日逐王被封为归德侯。甘露三年,呼韩邪单于亲往帝都长安,俯首称臣做北藩,“匈奴款塞、单于来朝”成为宣帝朝的一大盛事。
西陲之羌,盘踞青、陇,民风剽悍,勇猛好战,策应匈奴,扰我边疆。宣帝遣赵充国讨伐,两年完全平定,因置金城属国安置降羌,也就是西域都护设立的那一年。
光禄大夫义渠安国出使到了羌族,羌先零部落酋长向他表示要北渡湟水,到汉民不种田的地方畜牧。义渠安国向朝廷报告这个情况。赵充国弹劾义渠安国奉使失职。从此以后,羌人依照以前的话,擅自渡过湟水,当地汉朝的郡县长官不能禁止。元康三年,先零部落与各个羌族部落酋长二百多人“解仇交质”,订立盟约,打算共同侵扰汉朝地区。宣帝知道了这事,问赵充国如何对策,赵充国指出,羌人为患,一是羌族原来各部落互相攻击,易于控制,但近几年来他们“解仇合约”,共同反汉;二是羌族与匈奴早就打算联合;三是羌族还可能“结联他种”,即与其他种族联合。所以他提出“宜及未然为之备”的建议。过了一个多月,小月氏部落的羌侯狼何果派人到匈奴借兵,打算攻击鄯善、敦煌,以切断汉朝与西域的通道。赵充国估计事情不那么简单,需要深谋远虑。他向朝廷提出建议:一是加强军事上的边防;二是离间羌族各部落而侦探其预谋。
神爵元年春,汉朝中央两府又推荐义渠安国出使诸羌,了解其动向。义渠安国不懂策略,一到羌部,就召集先零部落的头领三十多人,以他们都有逆而不顺之罪,全部斩首。调兵镇压先零之民,杀了一千多人。于是羌族各部及归义羌侯杨玉等都很震恐,离开其地,劫掠其他小族部落,犯汉边塞,攻城邑,杀长吏义渠安国以骑都尉身份带领三千骑兵守备羌人,被羌人所击,损失惨重。他领兵退到令居,向皇帝报告。
汉宣帝意欲起用赵充国平叛,但这时赵充国已七十多岁,汉宣帝就派遣御史大夫丙吉去问谁可以为将,赵充国很自信地回答:“无逾于老臣者矣。”宣帝又派人去问:“将军度羌虏何如,当用几人?”赵充国答:“百闻不如一见。兵难隃度,臣愿驰至金城,图上方略。”意思是说,用兵不能远离战场空想,而要亲临前线观察,然后作出对策。他要求汉宣帝交给他任务,不必担忧。汉宣帝笑着答应了。
于是,赵充国虽年逾七十,仍督兵西陲,挫败羌人进犯。回来以后,三向朝廷上书,详细分析了形势,建议防事变于未然,提出了“以兵屯田”的主张,得到宣帝的赞赏。宣帝因他年老,问他:“派谁去带兵最合适呢?”他回答得很痛快:“再没有比老臣更合适的人选了。”又问:“需要多少人马?”答“百闻不如一见。臣愿立刻去金城测看地形,写出方案来。陛下把此事交给我办好了。”他就领骑兵不满万人,迅速出师,巧渡黄河,立稳阵脚,作好战斗准备。到达湟水岸边,羌人多次挑战,他坚守不出,只以威信招降,解散羌人各部落联合的计划。这时,他建议朝廷,屯田湟中作为持久之计,提出亦兵亦农,就地筹粮的办法,可以“因田致谷”,“居民得并作田,不失农业”;“将士坐得必胜之道”;“大费既省,徭役预息”等“十二便”。这对当时支援频繁的战争,减轻人民负担起到了很大的作用,一直影响到后世。