元朔六年(公元前123年),李广再为后将军,跟从大将军卫青的军队出定襄,击匈奴。诸将大多因立功而被封侯,而李广军无功而还。
公元前121年,李广以郎中令身份率四千骑兵从右北平出塞,与博望侯张骞的部队一起出征匈奴。李广部队前进了数百里,突然被匈奴左贤王带领的四万名骑兵包围。李广的士兵们都非常害怕,李广就派自己的儿子李敢先入敌阵探察敌情。
李敢率几十名骑兵,冲人敌阵,直贯匈奴的重围,抄出敌人的两翼而回。回来后向李广报告说:“匈奴兵很容易对付。”李广的军士听了才安定下来。李广布成圆形阵势面向四外抗敌。
匈奴猛攻汉军,箭如雨下,汉兵死伤过半,箭也快射光了。李广就命令士兵把弓拉满,不要发射,他手持强弩“大黄”射杀匈奴裨(副)将多人,匈奴兵将大为惊恐,渐渐散开。
这时天色已晚,汉官兵都吓得面无人色,但李广却意气自如,更加致力于整饬军队。军中官兵从此都非常佩服李广的勇气。
第二天,他又和敌兵奋战,这时博望侯张骞的救兵才赶到,解了匈奴之围。李广的军队几乎全军复没,李广功过相抵,没有得到赏赐。博望侯张骞延误行程,当斩,后用钱赎罪,成为平民。
李广前后与匈奴作战四十多年,却始终得不到封侯,当年同他一起为汉中郎的堂弟李蔡,“蔡为人在下中”,“下中”,即《汉书古今人物表》之第八等,下等之中。名声也远在李广之下,景帝时,李蔡积功劳至二千石。
元朔五年为轻车将军,后封为乐安侯,元狩二年中,代公孙弘为丞相,位至三公。李广的许多部下也被封侯,而李广却未得爵邑,官职也没有超过九卿。一次李广与望气算命的王朔交谈,说:“自击匈奴而广未尝不在其中,而诸部校尉以下,才能不及中人,然以击胡军功取侯者数十人,而广不为后人,然无尺寸之功以得封邑者,何也?岂吾相不当侯邪?且固命也?”(《史记·李将军列传》)王朔说:“将军想想难道做过什么可悔恨的事情么?”
李广想想说:“我为陇西太守时,羌族人造反,我引诱他们投降,来降的有八百多人,在他们投降的当天我就杀了他们。至今最大的悔恨只有这事。”王朔说:“罪过没有比杀已降的人更大了。这就是你不得封的原因了。”
元狩四年(前119年),大将军卫青与骠骑将军霍去病深入漠北打击匈奴。李广多次请求随军出征,武帝认为他年老未被启用。直到元狩四年才被任命为前将军,随卫青出征。
出塞,卫青得知单于的驻扎地,卫青决定自率部队正面袭击单于,而命前将军李广与右将军赵食其从东路夹击。东路道迂回且远,水草极少,不利于行军。
李广希望做为先锋正面对抗单于,说:“臣部为前将军,今大将军乃徙令臣出东道,且臣结发而与匈奴战,今乃一得当单于,臣愿居前,先死单于。”