在太原起兵之前,李渊早有取隋而代之的打算。他刚做了太原留守,就不断收罗人才,发展力量,显然是要和隋炀帝分庭抗礼了。
隋大业十三年(617年)九月,李渊起兵反隋,分兵两路,一路由李建成、刘文静等人率领,屯永丰仓,扼守潼关,监视河东的隋军;另一路由李世民、刘弘基等人率领,西进高陵,迂回长安。十月,李渊到长安城东门外宿营。这时,李世民部也逼近长安城郊,所有部队会集一起,共20多万。十一月,攻克长安。
李渊攻克长安,并没有立即做皇帝。他首先约法12条,不准杀人、劫盗、背军、叛逆,并废除隋炀帝的一切法令,以此来稳定社会秩序。其次,又立隋在长安的留守代王侑为皇帝,遥尊隋炀帝为太上皇,而自己则以大都督内外诸军事、尚书令、大丞相的身份掌握实权。
618年三月,宇文化及等人在江都(江苏扬州)缢杀了隋炀帝,另立秦王浩为皇帝。此时,长安有代王侑,江都有秦王浩,同时都称隋帝,当然是分庭抗礼。另外,洛阳还有个在王世充控制下的隋越王侗(隋炀帝死后他也称帝)。除了这些打着隋朝旗号的称帝者外,其他各地农民起义军和地方割据势力自称帝或王者还为数不少。
在这种情况下,李渊做皇帝的条件已经成熟,因为隋炀帝已死,不再存在篡权夺位的问题。对此,明清之际的王夫之曾有过很好的评论。王夫之认为,隋炀帝死后,隋已无君,关东已无尺寸之土为隋所有,李渊做皇帝是名正言顺的。他和杨玄感、李密相比,显然有天壤之别。因为杨玄感、李密是背君的叛逆者,李渊是拯救天下于水火的英雄。这正说明李渊是颇有远见的政治家,他是要在条件成熟的时候才做皇帝的。
从618年四月到五月,代王侑被迫禅位,李渊的表面辞让,群臣们的劝进,经过几次反复,李渊自认为已是名正言顺了,最后才做了皇帝,唐朝建立,李渊就是唐高祖。