然而,秦王李世民和太子李建成、齊王李元吉為了爭奪帝位而發生的鬥爭,注定要以兄弟相殘做結局。當時秦王府的兵士遠遠少於東宮和齊王府。李世民不得不孤注一擲,決定伏兵玄武門,襲殺李建成和李元吉。能否以最快速度在玄武門殺死李建成、李元吉並進入宮中控製唐高祖,將是這最後一搏成敗的關鍵所在。
玄武門是長安城的北門,也是皇宮太極宮的北門。太極宮的南麵是國家機關所在地皇城,大臣們上朝,走太極宮與皇城之間的天成門,也就是太極宮的南門。皇子們則走北麵的玄武門。李世民之所以選在這裏動手,一是因為這裏是李建成和李元吉上朝的必經之路,二是因為李世民早已收買了玄武門的主要將領常何、敬君弘、呂世衡等人。常何是勇冠三軍的猛將,曾經跟隨李世民出征洛陽,後來又跟隨李建成討伐劉黑闥。戰爭結束後,他留鎮地方。武德七年被調進京城做玄武門守將。李建成的東宮和李元吉齊王府的勢力合起來遠勝李世民的秦王府,如果雙方都有準備後再做決戰,李世民必敗無疑。精於謀略的李世民,出其不意地把玄武門作為最後開戰的地點,就是想靠局部地區的絕對優勢兵力,突然襲擊李建成和李元吉,把這兩個首腦一舉殲滅,讓他們的整體上的優勢力量無從發揮,從而贏得勝利。
李建成原以為跟隨他出征的常何是自己人,萬萬沒有想到他早已站在了李世民那邊。所以李建成占絕對優勢的京城之內,還存在了這個他能力所不及的死角。
武德九年(626年)六月初三,唐高祖李淵召見李世民,李世民趁機向李淵告發李建成和李元吉淫亂後宮的消息,但實際目的是想引太子李建成和齊王李元吉出宮。李淵聽到李世民所報之消息大感驚愕,決定次日讓二人在他麵前對質。
六月初四,秦王李世民親自帶一百餘人埋伏在玄武門內伏殺李建成、李元吉。李建成和李元吉策馬一同入朝,待走到臨湖殿,李元吉發覺事情有異,他和太子急忙拔馬往回跑。
李世民果斷地帶領伏兵從後麵追殺。李元吉情急之下慌亂地向李世民連射三箭,無一射中。李世民搭弓射箭精準無比,隻一箭就射殺了李建成。李元吉則死於尉遲敬德手下。東宮的部將得到消息前來報仇,和秦王的部隊在玄武門外激烈戰鬥,尉遲敬德將李建成和李元吉的頭割下示眾,李建成的兵馬見大勢已去,四散而走。之後,尉遲敬德又身披鎧甲去“保護”唐高祖,實際是控製了李淵。
三天後,李世民被立為皇太子,李淵下詔曰:“自今軍國庶事,無大小悉委太子處決,然後聞奏。”兩個月後,李淵退位,李世民登基,妻隨夫貴,長孫氏也被立為皇後。
李世民能在這場政治鬥爭中勝利,長久生活在宮中的長孫氏起了極為關鍵的作用。武德後期,由於李建成和李元吉的挑撥,李世民和李淵父子的關係逐漸緊張起來,父子間的對話常常不歡而散。李世民剛硬的性格決定了他不會去刻意地討好父親,而這種事情自然就落到了長孫氏身上。她常常圍在李淵身邊,承歡膝下,寬慰李淵不要和自己的丈夫生氣。李淵非常喜歡這個聰明善良、善解人意的兒媳,怒氣也就常常在不知不覺間散去了。