大业十三年,李渊太原起兵,派李建成和李世民直取霍邑的宋老生。临行跟二人说,今天就怕宋老生怯而不战,闭门城守。如果那样咱该咋整呢。二人说,宋老生出自寒微, 勇而无智,讨捕小盗,颇有名声。只要派几股游击势力骚扰,他肯定会出来。如果他真的耍死狗,那么就派间谍说他跟咱们是一伙的。他的左右都是一帮凡庸小人,不识大体,肯定会向朝廷告状,到时候宋老生不用咱们收拾,就会被砍下脑袋送往京师。所以您就等我们好消息吧。
于是李渊派李建成和李世民各带几十名骑兵逼近霍邑城观察地形,然后把自己带的几百名骑兵分成十多个小队,围着城墙往来奔突,好像将要攻城的样子。宋老生在城上看见李渊就带了这么点人马来了,于是开城带着三万人马出来叫阵,李渊让李建成领左军攻东门,让李世民领右军攻南门,自己带人转身跑路,假装害怕了。宋老生果然引兵追赶,此时李渊的步兵队伍也在殷开山的带领下前来接应,双方还未开战,李建成和李世民加紧攻城,李渊军中也大喊已经杀了宋老生,结果宋老生部众闻而 大乱,舍仗而走,争奔所出之门,可是城门已经被李建成和李世民控制,宋老生进不去,只好从城墙上让人吊下绳子准备爬上去,去地丈余,军头卢君谔所部人等跳跃及而斩之。
这是《大唐创业起居注》的说法。《大唐创业起居注》是行军司马温大雅写的行军日记,第一手材料,比较靠谱。后来的《旧唐书》对此战却是这么写的:李渊和李建成合兵一路在城东驻扎,李世民和柴绍合兵一路在城南驻扎。宋老生首先攻击李渊李建成部,结果李建成从马上掉了下来,李渊李建成所部退却,李世民亲自带了两个骑兵从南原冲下来,引兵奋击,贼众大败,各舍仗而走。宋老生撒腿就往城里跑,结果被卢君谔一刀砍了。旧唐书的记载很显然比较夸张。所以后来李世民和李靖在讨论此战的时候李靖对此作了客观评价。
李世民问李靖,当年我大破宋老生,刚开始我爸和我哥被人家打的抱头鼠窜,幸亏我亲自带人将宋老生击溃斩杀。对于此战你怎么看。李靖说,陛下天纵圣武,非学而能。但是此战李建成从马上掉下来,却是帮了您的大忙。李世民说,他被打败几乎坏了大事,怎么就成帮我忙了。李靖说,如果他们不被打败,而是顽强奋战,那么宋老生就不会倾尽全力追杀他们,而会给自己留后路,那么您从后面攻击的话也会遇到宋老生的顽强抵抗,到时候敌众我寡,胜负未可知。正是由于李建成的大败,才导致您的大胜啊。李世民说,你说得对。
其实对于霍邑之战李靖了如指掌,因为当时他正聚众坚守长安,霍邑的战事肯定受到他的密切关注。李渊父子是怎么拿下霍邑的他也心知肚明,这就是他为何要给李建成说话的原因。客观而言霍邑之战李建成的功劳和李世民一样大,或者说都不大,因为二人都是辅军,真正的主力部队由李渊率领着。但是李靖也不能反驳李世民对自己的吹嘘,只好委婉的给李建成的功劳作了客观评价。