李渊想让几个儿子和睦相处,但又在立皇太子的问题上,没有明确的主意,使得兄弟相争不已。在刘武周大举南下,攻陷太原威胁长安的时候,李渊亲自为儿子李世民送行,还许诺得胜回来后立他为太子。但李世民回来之后,李渊又反悔,听信后妃们的求情,保留了李建成的太子之位。这直接导致了兄弟之间的不和,成了激烈的太子之争的导火线。
太子李建成和秦王李世民为了争夺皇位明争暗斗,展开了你死我活的斗争。公元626年夏,突厥犯境,李建成向李渊推荐齐王李元吉为出征元帅,想借此把秦王府的精兵和骁将掌握在自己手中,然后除掉秦王。不料这一密谋被李世民得知。在这紧急关头,李世民先发制人,密告太子、齐王□□后宫,李渊决定次日诘问。次日,李世民在玄武门设下伏兵。当太子、齐王途经玄武门时,李世民及部下将其杀死,并让心腹尉迟敬德带甲入宫报告李渊。此时李渊正和大臣萧禹、裴寂坐在一只小龙船上,荡漾在南海池中,他见尉迟敬德全副武装立在岸边,十分惊骇。尉迟敬德说,太子和齐王造反,秦王已把他们处死,特派我前来保驾,李渊听后惊得目瞪口呆。旁边的萧禹等赶忙劝李渊把国事都托付给秦王,尉迟敬德也敦促李渊下诏,令诸军悉受秦王节制,以便制止东宫和齐王府军队的骚乱。李渊无奈,被迫写下诏书,命令所有军队悉听秦王处置,并诏立世民为太子。此时,全国局势基本上被李世民控制,李渊无奈,表示愿早些退位。