武德三年(620年)正月,唐将秦武通击降王行本。二、三月,唐将王行敏、李仲文分别在潞州、浩州击退刘武周军的进攻。唐将张德政袭斩护运粮饷的刘武周部将黄子英,占领张难堡,切断了汾水东侧的宋金刚军粮道。
四月十四日,与唐军相持约五个月的宋金刚军终因粮秣断绝,被迫以寻相部为后卫,向北撤退。
情报汇总到李世民的指挥部,李世民召集大家商议,李靖建议,机不可失,全军立即投入进攻。
于是,李世民和李靖亲自率领两千骑兵作为先锋,日夜兼程跟踪追击,大部队随后掩杀,追到吕州(今山西霍州)终于追上了寻相,大败其军,并乘胜追击逃敌,一昼夜走了二百多里,打了几十仗。
到高壁岭(今山西灵石县南),总管刘弘基抓住李世民的马缰绳规劝道:“大王打败敌人,追击逃敌到了这里,功劳也足够了,不断深入,就不爱惜自己吗?况且士兵们饥饿疲惫,应当在此停留扎营,等到兵马粮草都齐备了,然后再进击也不晚。”
李世民说:“宋金刚无计可施才逃跑,此时他军心涣散。功劳难立,失败却很容易;机会难得,失去却很容易。一定要趁此机会一鼓作气消灭他。如果我们滞留不前,让他有时间考虑对策加强防备,就不可能轻易打败他了。我尽心竭力效忠国家,怎么能只顾惜自己的身体呢?”
于是打马追击,将士们也不敢再提饥饿。个个奋勇争先。
唐军在雀鼠谷(今山西介休西南)又追上了宋金刚大军,双方一天交锋八次,唐军最后都取得了胜利。宋金刚大军兵败如山倒,已经丧失了抵抗能力,又被唐军杀死、俘虏了几万人。
当夜,唐军在雀鼠谷西原宿营,李世民已经两天没有吃东西,三天没有脱下盔甲了。
李靖也是一样,此时此刻,他累得从马上刚一下来,立即就躺倒了。身体虽然极度疲惫,已经达到生理上的极限,但心内里李靖却感到前所未有的痛快,这一仗才真正是痛快淋漓,几十年了,他李靖等待的就是这样的战场。老天终于给了他这样的机会。他可以在李世民面前,把自己的才华和对战场深刻的洞察力,贡献出来,为全军取得最后的胜利,做出自己独特的贡献。
躺在草地上,仰望着漫天的繁星,李靖感到前所未有的成就感,他想起舅舅的预言“可与论孙、吴之术者,惟斯人矣”。
李靖在心里默默地祈祷说:“舅舅,感谢你当年那么高看我,给了我莫大的精神鼓励,使我过去的几十年,虽然郁郁不得志,但是我从来没有否定过自己,我不信自己没有表演的舞台,我只是默默地准备着,从来没有放弃过读书、思考,一刻也没有荒废自己宝贵的时光,现在老天开眼,我李靖终于有了用武之地,大丈夫能够驰骋疆场,为国家效力,即使马革裹尸,也是死得其所,此生无憾矣。”
当天晚上,全军只有一只羊,李世民与将士们分吃了这一只羊。
四月二十三日,唐陕州总管于筠从宋金刚手下脱身逃回唐军中。告诉李世民,宋金刚大军已经胆寒,军心即将崩溃。
李世民和李靖商量后,李靖建议,兵贵神速,立即进攻介休。大军追击到介休城下,宋金刚此时还有二万人,他看到唐军到来,只好放手一搏,于是帅军出西门,背对城墙排列战阵,南北长达七里。
李世民派李勣、程咬金、秦叔宝当其北,翟长孙、秦武通当其南,李勣出战不利,稍稍退却,宋金刚乘机反扑,李世民和李靖带领三千精骑从宋金刚背后袭击,宋金刚大败,唐军斩杀对付三千人。
宋金刚见大势已去,只好打马逃走,李世民帅军追出几十里,来到张难堡(山西平遥西南)。
唐浩州行军总管樊伯通、张德政占据堡垒自卫,李世民摘下头盔示意堡内,堡中守军见后欢呼雀跃,高兴得流下眼泪。
随从立即告诉守军秦王还没有吃饭,守军于是献上浊酒、粗米饭,给秦王食用。
尉迟敬德收拾剩下的残兵败将正在坚守介休,李世民判断他有投降的意思,于是就派任城王李道宗、宇文士及前去劝降,尉迟敬德于是和寻相以介休、永安二县降唐。
李世民对尉迟敬德这员猛将仰慕已久,现在看尉迟敬德果然来降,高兴不已,亲自带领众将到辕门外迎接,立即任命尉迟敬德为右一府统军,并让他仍然统领自己的八千旧部,和各营相杂在一起。
屈突通担心尉迟敬德会反复,屡次向李世民提醒,但李世民不听,对尉迟敬德信任有加。
刘武周听说宋金刚大败,惊慌失措,于是立即决定放弃并州,率五百骑向北逃窜,自乾烛谷逃亡突厥。
而宋金刚却还想收拢溃散的军马来抵抗,最终因无人响应,只得带百余骑也逃往突厥。
李世民随后进军并州,尽收故地。
过了一段时间,宋金刚背弃突厥想要逃回上谷,被追赶的骑兵擒获后腰斩。
公元620年(唐武德三年),刘武周图谋逃回马邑,事情泄露后也被突厥杀死。
当初,刘武周决定南下犯唐的时候,他的内史令苑君璋劝谏说:“唐主以一个州的兵力,直取长安,所向无敌,这是上天有助,不是人力。晋阳以南,道路狭窄险要,孤军深入,后无援军,假如进军攻战不利,怎么回军?不如北面联合突厥,南面与唐结交,在此一方称王称霸,才是良策。”
刘武周不听,留苑君璋守卫朔州。
等到大军失败后,他流着泪对苑君璋说:“我后悔没有采纳您的意见,以至于到了现在这种地步。”随即共同逃往突厥。
突厥杀死刘武周后,就任命苑君璋为大行台,统领刘武周的余部,仍然令郁射设督兵协助镇守。