扫平窦建德之后,李世民被高祖李渊封为“天策上将”,位在王公之上,并且担任尚书令,相当于宰相之首。由于统一全国的赫赫战功,李世民在朝野上下的威信日增,严重威胁到了他的哥哥——身为皇太子的李建成。
除了这些官职,李世民还掌握着军队的大权。但是,李建成常年在朝中,在长安扶植起了一批自己的势力,并像李世民一样有自己的亲兵卫队。朝中的大臣基本分成两派,分别归入太子集团和李世民的秦王集团当中,三皇子齐李元吉,并没有置身事外安享富贵,而是加入了大哥李建成的阵营,帮助李建成共同对付二哥李世民。随着李世民的功劳越来越大,地位越来越高,太子和秦王之间的矛盾也就愈演愈烈了。
玄武门之变以前,李建成和李元吉便多次想除掉李世民。有一次,李世民随李渊到齐王李元吉府上,李元吉就打算趁机刺杀李世民,派了将士埋伏在卧室内。但是,李建成觉得父亲在场,不方便做此事,制止了李元吉。
公元624年,庆州总管杨文干叛乱,牵涉到了太子李建成,李渊命李世民讨伐,还许诺在平定后立他为太子。但事后,李渊又听从李元吉和后妃的话,改了主意,这无异加剧了兄弟之间的争夺。
公元626年,双方已成剑拔弩张之势。有一次,太子李建成晚上找李世民去喝酒,在酒里下了毒,李世民心痛剧烈,吐了血,幸亏淮安王李神通将李世民送回秦王府才得救。这次谋害使李世民下了决心除掉对方,属臣长孙无忌和房玄龄、杜如晦也表示支持。
李世民逃过一劫后,李建成和李元吉并没有就此罢休,相反更加紧了行动。虽然收买奏王府将领的阴谋没有得逞,但在李渊的支持下,房玄龄和杜如晦被调出了秦王府,削弱了李世民的力量。
正在斗争日趋激烈的时候,恰逢突厥南侵,李建成和李元吉觉得时机到来,便由李建成建议让李元吉代替李世民北伐突厥,李渊同意了,然后,他们就进一步提出,调秦王的部下大将慰迟敬德和秦叔宝等人随同出征,还要求将秦王的精兵划归李元吉统领,李渊也同意了。这很明显,是想孤立李世民,然后再伺机下手。
李建成和李元吉商议在出兵饯行的时候,派人将李世民刺死。太子李建成的一个属官得知后,马上向李世民报告了这个机密消息,李世民决定先下手,以免后患。
六月三日,李世民向父皇李渊报告了二人的阴谋,还趁机告发他们淫乱后宫,李渊答应第二天早朝时对质,处理此事。李世民并没有将希望寄托在父皇的处理上,因为先前父皇总是偏袒他们。他果断部署了行动计划。
六月六日清晨,李世民命属将伏兵于长安宫城的玄武门。李世民成功地收买了李建成的将领,玄武门守将便是被收买的李建成的属将。正因为李建成认为有自己的人在,才敢于上朝去,结果走进死路。
李建成和李元吉走到临湖殿时,发觉守门的士卒不是自己的属下,便想回头。但此时李世民骑马赶来,双方发生了激战,李元吉射了三箭没有射中李世民,李世民却一箭将李建成射死,慰迟敬德领骑兵将李元吉射死。然后,慰迟敬德向李渊报告说李建成和李元吉要造反,已经被秦王杀死,李渊只好下诏平息了两派的激战。
六月六日,李世民被立为太子。八月,李渊传位于给李世民,自己做了太上皇。