同时,李渊制定了明确的目标,那就是直取隋朝的心脏——大兴。李渊不像农民军一样,攻城略地,扩充地盘,也不像杨玄感、李密一样,脑袋发热,聚焦在少数大城市。起兵后,李渊采取了灵活正确的战略,一面派遣刘文静出使突厥,请求突厥可汗派兵马相助,以减轻突厥南下的军事压力,一面招募军队,率师直向大兴行进。
隋西京留守、代王杨侑听说远房亲戚李渊举兵了,派遣虎牙郎将宋老生率精兵两万驻守霍邑(今山西霍县),扼守李渊进军关中的道路。大将屈突通则率领骁果数万,驻守河东郡(今山西永济西南蒲州镇),与宋老生遥相呼应,以拒李渊。
在所有举兵者中,李渊的人员规模最初只能算是中等。从太原到大兴,沿途有数倍于他的隋朝军队。在进军霍邑的途中,李渊遇到了大麻烦。天气骤变,大雨倾盆,军队又缺粮少衣。更严重的是,后方传来了突厥与同为举兵者的刘武周联合,将乘虚偷袭太原。李渊陷入进退两难的境地。
这时,李渊的困境被瓦岗军的首领李密知道了。李密给李渊写了一封信,表示要与李渊“合作”,一起攻打天下。实际上,合作是假,吞并是真。李密的意思是:既然前无去路,后退无所,不如直接把队伍并入瓦岗军。面对李密的试探与威胁,李渊装傻,给李密回了一封肉麻的吹捧信:“天下百姓渴望明君圣主已经很久了,那么传说中的救世主,非您莫属。我非常荣幸,与您同姓。我已经老了,您还年轻,希望以后能得到您的关照。”
李密在金墉城里,尽管没有等到李渊带着队伍前来,却见到了拍马屁的信,也很高兴,还拿着信向部下到处显摆道:“看来李渊只是一个无能之辈,成不了什么大气候。”
话说回来了,逗留霍邑附近的李渊,遇到的麻烦的确很大。他仓促召集将佐开会,决定撤退,先保住太原。他的大儿子李建成和二儿子李世民就劝说,起兵的前途是光明的,困难是暂时的,如果全军撤退回太原,李家最多就只能做一个割据头目。而李家起兵的目的不是割据,而是夺天下。李渊醒悟后马上召回军队,倾注全力猛攻霍邑。不久,后方军粮运到,突厥偷袭太原的消息也被证实是个假情报。
霍邑城池坚固,不是李渊的三万新兵能轻易攻克的。李建成、李世民兄弟俩制定了引宋老生出战,再分兵去偷袭城池的作战方案。宋老生中了激将法,率军出来和李渊决战。混战开始没多久,李渊让军士鼓噪高呼“宋老生已经被杀死了”,隋军闻知大将被杀,全都乱了手脚,四处溃散。等隋军退回霍邑城下,城头早已换上了“李”家旗号。此战,霍邑在李渊军队的猛攻面前失陷,宋老生被杀。
李渊占领霍邑后,厚葬了宋老生,对于想回家的关中士兵,则“授予”五品闲散官衔放回。这些举措不同凡响,赢得了许多隋朝阵营之人的好感。那些拿着路费回家的隋军,添油加醋地把李渊的战功和宽容大度传播到了关中各地,变成了李渊部队的“编外宣传队”。
霍邑失守后,大兴变得无险可守,成为李渊的囊中之物。李渊有如今的乐观局面,显然是抓住了千载难逢的良机。此时,李密领导的瓦岗军正在洛阳与隋朝的主力王世充军激战,关中地区空虚。而河东方向的屈突通部队为了抵御河北各地的农民起义军,不敢西进攻打李渊的军队,反而帮助李渊挡住了其他觊觎关中的起义军过来抢食。
李渊轻松向前推进,一路上不断瓦解农民起义军和收编地主武装,到大兴郊区时已经拥有二十万军队了。
防守大兴的代王杨侑,不过十二三岁。他是早逝太子杨昭之子、杨广之孙,算起来也是李渊表孙子辈的。
杨侑根本就不懂政事,任由城内留守的几个大臣决定守城策略。
留守京师的刑部尚书卫文升和右卫将军阴世师,坚持要在大兴进行防御战,等待关东和其他地区的隋朝救兵到来。两人挟持着杨侑巡视城防,积极备战。怎奈隋朝国势衰弱已久,即使是首善之区的京师也拼凑不了一支雄壮精干的守军。
李渊希望不战而屈人之兵,两次发通牒要求杨侑献城投降。杨侑不置可否,但卫文升、阴世师和京兆郡丞骨仪坚持要固守一战。
两方实力悬殊,大兴孤城很快就被李渊的队伍攻破。十月,李渊胜利占领了隋朝名义上的都城。阴世师、骨仪战死。这时李渊早年的政治经历和官场实践为他充分利用京城的价值提供了帮助,一进城,他就号令三军:“犯隋七庙及宗室者,罪三族。”他们严格做到了这一点,连抵抗的卫文升都被放归家中。如此,城内的隋朝贵族、高官和百姓的心理迅速安定下来。
李渊入城后,仿效汉高祖刘邦当年与关中居民的约法三章,也约法十二条,规定杀人、劫盗、背军、叛者死,同时废除隋朝的严刑峻法和苛捐杂税,等等。大兴城的人们很快安定下来,转而支持带来了新的秩序和制度的李渊了。
众将皆推李渊为尊。李渊起兵仅仅几个月,就成了囊括关中、占据西京的豪强。