隋炀帝建东都,开运河,征高丽,加上连年大规模的巡游,给百姓强压上无休止的劳役和越来越重的赋税,弄得民不聊生。在忍无可忍的情况下,农民起义终于爆发了。
隋炀帝调集大军进行镇压,更加激起了广大农民的愤怒。不久,各地起义军汇合成三支强大的队伍:
(1)一支是由窦建德领导的河北起义军,
(2)一支是由李密、翟让领导的瓦岗军,
(3)一支是由杜伏威领导的江淮起义军。
其中瓦岗军力量最大。瓦岗军建立政权以后,南北起义军纷纷响应,前来归附,
李密成了中原起义军的领袖,称魏公,改年号为永平。在起义军的猛烈攻击下,隋朝的统治已经土崩瓦解,许多地方官纷纷起兵反隋。
公元617年,李渊次子李世民久有反隋之意,便抓住机会,劝父亲起兵造反。李渊犹豫了许久,同意了李世民的建议,一面招兵买马,派人召回正在河东打仗的另两个儿子李建成和李元吉;一面与突厥可汗相约举事。突厥可汗认为此举有利于己,便答应了李渊。
李渊带领三万人马离开晋阳,向长安进军。攻到霍邑时,遭到隋朝名将宋老生的阻击。时逢秋雨连绵,军粮运输中断,李渊想退军。李世民鼓励父亲说:"未打一仗就撤兵,难免令人失望;一旦军心涣散,我们只有死路一条!"李渊深以为然,便继续坚持围城。
不久,李世民寻机诱宋老生出城,将其伏击在城外。李渊攻占霍邑,继续向西进军。
公元617年10月,李渊率领二十多万大军攻打长安。守在长安的隋军已经无力回天,很快就被李渊的军队打败。为了争取民心,李渊一进长安就宣布约法十二条,把隋王朝的苛刻法令全部废除,随后立隋炀帝的孙子杨侑做了挂名皇帝,自号唐公。
公元618年夏,隋炀帝死于江都。消息一传来,李渊就把杨侑废了,自己登基称帝,改国号为唐,这就是唐高祖。