薛举曾是隋朝金城郡的豪绅,公元617年,先称西秦霸王,后又称皇帝,占据了全部陇西,兵力有十多万人。薛举起兵也想取代隋朝,自己做皇帝。公元617年12月,李世民率兵在扶风将薛举打败,将唐的势力扩充到陇右一带,进一步稳定关中局势。公元618年8月薛举病死,他的儿子薛仁杲继续威胁长安。李渊命李世民为元帅第三次出征,这次在浅水原将薛仁杲彻底击溃,薛仁杲也投降了唐朝,陇西收归唐朝。
平了薛举父子之后,李渊又开始对付割据河西的李轨。在李渊建立唐朝之际,李轨称帝。
公元618年,李渊为了进攻薛举,曾派人和他结盟通好。李轨非常高兴,主动让弟弟到长安做人质,李渊封他为凉王。但册封使节到达时,李轨的下属对是否接受唐朝册封产生分歧,李轨没有听信部下的话,又不肯屈居李渊之下,对李渊自称“大凉皇帝臣轨”。虽然用了“臣”,但李渊并不领情,他不能允许还有一个皇帝的存在,于是加紧了对李轨的军事行动。
为了避免战争,李渊派安兴贵去劝说李轨投降,安兴贵是李轨户部尚书安修仁的哥哥。李轨听了安兴贵的劝说没有改变主意,反而说安兴贵是为了报答李渊的恩情才来劝说他的。安兴贵害怕李轨加害自己,便和哥哥一起谋划,最后发动兵变,俘虏了李轨。河西于是平定。
刘武周也是李渊的一个劲敌,他起兵较早,和突厥勾结势力比较强盛。公元629年,刘武周联合突厥南下占领了并州,唐朝的并州总管、齐王李元吉无力抵抗,弃城而逃。李渊先派裴寂出击,也大败而归。李渊这时想放弃这个地区,遭到李世民的反对。最后李世民领兵出征,用坚壁清野消耗对方的战术,全面击溃了刘武周的部队。刘武周逃到突厥,后来被杀。唐朝又恢复了原来在河东地区的统治。三个周围的劲敌消灭之后,李渊便把注意力投向了中原。
在中原的主要对手是王世充,他原是隋朝的江都通守,隋炀帝杨广被杀之后,他拥立杨侗为帝,又打败瓦岗军,除了李密和部分军队外,其余的瓦岗军都被王世充收编。到公元619年,王世充踢开杨侗,自己称帝,建立郑国,定都洛阳。
李渊派李世民东征王世充,最后将王世充包围在了洛阳一座孤城里,王世充向北边的窦建德求援。窦建德最后被李世民击败成了阶下囚。王世充绝望之下只好献城投降。窦建德的部将刘黑闼又举兵反唐,不到半年就又恢复了原来窦建德的领地。
李世民又奉命征讨,和刘黑闼所部两万人激战,从中午到黄昏不分胜负,李世民便命唐军决堤水攻,刘黑闼败退投奔突厥,然后又卷土重来。李渊命李元吉征讨,被刘黑闼击败。太子李建成又亲自出征,他采纳了谋士魏征的策略,安抚民心,最终瓦解了刘黑闼的部下,刘黑闼在败退时被杀。河北和山东地区终于平定。
隋朝末年,萧铣趁乱割据在江陵一带。萧铣占领的地区非常广阔,南到交趾,北到汉水,西达三峡,东及九江。但萧铣和其他割据者一样只是想偏安一地。萧铣是原来南朝梁宣帝的曾孙,祖父萧岩在梁被隋灭时逃到了陈朝,陈被隋灭时,萧岩被押到长安斩首。但在隋炀帝杨广时,因为萧铣和隋炀帝的皇后萧氏同是南朝梁的后裔,所以又被任命为罗县县令。由于隋末各地起义不断,作为梁朝的后裔萧铣被地方将校推为首领,割据反隋。于是,萧铣也声称要恢复梁的疆土。隋炀帝杨广死后,一些隋朝的将领也投靠了他,其地盘不断扩大,成了南方最大的割据势力。
李渊在派李世民东征王世充的同时,命大将李靖领兵南下攻取长江中游的萧铣。然而,萧铣这时为了防止众将夺其兵权,竟说要罢兵经营农业,导致自己和部将矛盾加深,许多将领离他而去。面对富有军事韬略的李靖的大举进攻,萧铣虽然由于部将的叛离力量削弱,但也只得硬着头皮应战。李靖出奇制胜,在长江水涨、萧铣认为他不能用兵时,李靖偏偏说服众将趁机进军,大败萧铣军。萧铣最后听从了中书侍郎岑文本的劝告,投降了唐军。
割据江淮一带的是杜伏威,他占据历阳,自称总管。唐军围攻洛阳时派人招降他,杜伏威便投降了唐朝,被李渊封为吴王。杜伏威让属将辅公石留下统领兵将,自己请求入朝,留在长安做了人质。几年后,辅公石起兵反唐,称帝对抗唐朝,结果李渊将杜伏威杀死,派大将李靖等讨伐,不久,辅公石被当地武装抓获,送唐军营中处死,江淮地区也宣告平定。