隋煬帝建東都,開運河,征高麗,加上連年大規模的巡遊,給百姓強壓上無休止的勞役和越來越重的賦稅,弄得民不聊生。在忍無可忍的情況下,農民起義終於爆發了。
隋煬帝調集大軍進行鎮壓,更加激起了廣大農民的憤怒。不久,各地起義軍匯合成三支強大的隊伍:
(1)一支是由竇建德領導的河北起義軍,
(2)一支是由李密、翟讓領導的瓦崗軍,
(3)一支是由杜伏威領導的江淮起義軍。
其中瓦崗軍力量最大。瓦崗軍建立政權以後,南北起義軍紛紛響應,前來歸附,
李密成了中原起義軍的領袖,稱魏公,改年號為永平。在起義軍的猛烈攻擊下,隋朝的統治已經土崩瓦解,許多地方官紛紛起兵反隋。
公元617年,李淵次子李世民久有反隋之意,便抓住機會,勸父親起兵造反。李淵猶豫了許久,同意了李世民的建議,一面招兵買馬,派人召回正在河東打仗的另兩個兒子李建成和李元吉;一面與突厥可汗相約舉事。突厥可汗認為此舉有利於己,便答應了李淵。
李淵帶領三萬人馬離開晉陽,向長安進軍。攻到霍邑時,遭到隋朝名將宋老生的阻擊。時逢秋雨連綿,軍糧運輸中斷,李淵想退軍。李世民鼓勵父親說:"未打一仗就撤兵,難免令人失望;一旦軍心渙散,我們只有死路一條!"李淵深以為然,便繼續堅持圍城。
不久,李世民尋機誘宋老生出城,將其伏擊在城外。李淵攻佔霍邑,繼續向西進軍。
公元617年10月,李淵率領二十多萬大軍攻打長安。守在長安的隋軍已經無力回天,很快就被李淵的軍隊打敗。為了爭取民心,李淵一進長安就宣布約法十二條,把隋王朝的苛刻法令全部廢除,隨後立隋煬帝的孫子楊侑做了掛名皇帝,自號唐公。
公元618年夏,隋煬帝死於江都。消息一傳來,李淵就把楊侑廢了,自己登基稱帝,改國號為唐,這就是唐高祖。