隋朝末年,由于繁重徭役和兵役,民不聊生,纷纷起而反抗。在反隋斗争中,各地起义军极大地动摇了隋朝统治基础,造成了隋王朝总体崩溃形势。太原“据天下之肩背,为河东之根本”,是兵家必争之地。隋炀帝任命唐国公李渊为河东宣慰大使,留守太原,镇压农民起义。李渊升任太原留守后,自知无力镇压农民起义,又深晓炀帝猜忌嗜杀,政局动乱,难于自保,加渊终于下定反隋决心。他派李世民、刘文静、长孙顺德、刘弘基等人到各地募兵,招集到一万余人。同年,李渊率军誓师,正式起兵。在发布的檄文里斥责隋炀帝听信谗言,杀害忠良,穷兵黩武,致使民怨沸腾,“豺狼充于道路”,因此,李渊要废掉昏君隋炀帝,尊为太上皇,然后拥立代王杨侑为帝。李渊一面遣刘文静出使突厥,请求始毕可汗派兵马相助,一面招募军队,并率师南下。此时瓦岗军与困守洛阳的王世充激战方酣,李渊乘隙进取关中,继而攻克长安。次年,李渊废掉杨侑,自立为帝,建立唐朝。
李渊占领长安的同时,除了瓦岗军之外,主要的还有窦建德领导的河北起义军和杜伏威领导的江淮起义军,不断在各地打击隋军。大业十四年,隋炀帝被杀,东都洛阳落在隋朝的东都留守杨侗和大臣王世充手里。王世充把杨侗立为皇帝,继续打着隋朝的旗号,对抗起义军。年武德二年,下世充打败瓦岗军,夺取了政权,改固号为郑,割据关东地区。李世民为李渊次子,不但善于打仗,而且善于用人,像有名的秦叔宝、程咬金、尉迟敬德都是他的得力助手。
李世民人军一出关,河南许多州县纷纷投降,很快就把东郝包围。虽然昼夜攻城。但终因洛阳城坚固而无法取胜。将士思归心情迫切,李世民却坚定意志,鼓励将士说:“这次我们领重兵而来,应当一劳永逸,东边各州已经望风而降,只剩下了洛阳一座孤城,从现在形势来看很难再坚守多长时间了,大功马上就要告成,你们为什么又要放弃无功而返呢?”在王世充被围将败的紧要关头,河北的窦建德领兵十万,大举南下。他开始也不愿意相救,坐观龙虎相斗。后来看到王世充处于下风即将被歼,便出兵相救,以免在王世充灭亡之后,自己也一样力单势孤。窦建德写信给李世民,要他退到潼关,讲和修好。李世民断然拒绝,开始部署如何对付窦建德。
李世民的部下薛收认为,王世充现在只缺粮草,万一得到接济,战争的胜败就很难预料了。应该在围困洛阳的同时,由秦王李世民亲自领精锐骑兵抢占虎牢关。击败窦建德之后,王世充也就不攻自破了。李世民采纳了薛收的意见,率领精锐骑兵火速奔袭虎牢,历史上有名的虎牢之战正式开始了。武德三年,李世民领兵到达了虎牢关,把夏军的粮道切断。窦建德只好就地筑垒固守,将士思归心理日益加重,军心开始涣散。李世民在黄河北岸留下战马千匹,给窦建德一种粮草已尽的假象,他本人则返回虎牢。
窦建德果然中计,命令全军出动。夏军兵士摆开阵势,但从早上到中午,还没有见唐军出来交战,兵士们疲惫不堪。李世民见时机已到,就命令全军以排山倒海之势冲向敌军,窦建德被唐军俘虏。洛阳的王世充只好开城投降。