掃平竇建德之後,李世民被高祖李淵封為“天策上將”,位在王公之上,並且擔任尚書令,相當於宰相之首。由於統一全國的赫赫戰功,李世民在朝野上下的威信日增,嚴重威脅到了他的哥哥——身為皇太子的李建成。
除了這些官職,李世民還掌握著軍隊的大權。但是,李建成常年在朝中,在長安扶植起了一批自己的勢力,並像李世民一樣有自己的親兵衛隊。朝中的大臣基本分成兩派,分別歸入太子集團和李世民的秦王集團當中,三皇子齊李元吉,並沒有置身事外安享富貴,而是加入了大哥李建成的陣營,幫助李建成共同對付二哥李世民。隨著李世民的功勞越來越大,地位越來越高,太子和秦王之間的矛盾也就愈演愈烈了。
玄武門之變以前,李建成和李元吉便多次想除掉李世民。有一次,李世民隨李淵到齊王李元吉府上,李元吉就打算趁機刺殺李世民,派了將士埋伏在臥室內。但是,李建成覺得父親在場,不方便做此事,製止了李元吉。
公元624年,慶州總管楊文幹叛亂,牽涉到了太子李建成,李淵命李世民討伐,還許諾在平定後立他為太子。但事後,李淵又聽從李元吉和後妃的話,改了主意,這無異加劇了兄弟之間的爭奪。
公元626年,雙方已成劍拔弩張之勢。有一次,太子李建成晚上找李世民去喝酒,在酒裏下了毒,李世民心痛劇烈,吐了血,幸虧淮安王李神通將李世民送回秦王府才得救。這次謀害使李世民下了決心除掉對方,屬臣長孫無忌和房玄齡、杜如晦也表示支持。
李世民逃過一劫後,李建成和李元吉並沒有就此罷休,相反更加緊了行動。雖然收買奏王府將領的陰謀沒有得逞,但在李淵的支持下,房玄齡和杜如晦被調出了秦王府,削弱了李世民的力量。
正在鬥爭日趨激烈的時候,恰逢突厥南侵,李建成和李元吉覺得時機到來,便由李建成建議讓李元吉代替李世民北伐突厥,李淵同意了,然後,他們就進一步提出,調秦王的部下大將慰遲敬德和秦叔寶等人隨同出征,還要求將秦王的精兵劃歸李元吉統領,李淵也同意了。這很明顯,是想孤立李世民,然後再伺機下手。
李建成和李元吉商議在出兵餞行的時候,派人將李世民刺死。太子李建成的一個屬官得知後,馬上向李世民報告了這個機密消息,李世民決定先下手,以免後患。
六月三日,李世民向父皇李淵報告了二人的陰謀,還趁機告發他們淫亂後宮,李淵答應第二天早朝時對質,處理此事。李世民並沒有將希望寄托在父皇的處理上,因為先前父皇總是偏袒他們。他果斷部署了行動計劃。
六月六日清晨,李世民命屬將伏兵於長安宮城的玄武門。李世民成功地收買了李建成的將領,玄武門守將便是被收買的李建成的屬將。正因為李建成認為有自己的人在,才敢於上朝去,結果走進死路。
李建成和李元吉走到臨湖殿時,發覺守門的士卒不是自己的屬下,便想回頭。但此時李世民騎馬趕來,雙方發生了激戰,李元吉射了三箭沒有射中李世民,李世民卻一箭將李建成射死,慰遲敬德領騎兵將李元吉射死。然後,慰遲敬德向李淵報告說李建成和李元吉要造反,已經被秦王殺死,李淵隻好下詔平息了兩派的激戰。
六月六日,李世民被立為太子。八月,李淵傳位於給李世民,自己做了太上皇。