为了解决这个矛盾,李渊想了三种措施。第一是改立李世民为太子,毕竟李世民是太原起事的首谋(当时李建成不在李渊身边),在打江山的过程中也功劳最大。所以李渊数次承诺由李世民来当太子。武德七年(624年)7月,太子李建成的部下杨文干叛乱,高祖传召秦王李世民亲自去平叛。李渊对李世民说:“杨文干谋反牵涉到建成,恐怕响应人比较多。你最好亲自前往,回来以后,我便将你立为太子。我不愿效法隋文帝诛杀自己的儿子,届时我就把李建成降为蜀王。蜀地的兵力薄弱,如果以后他能够事奉你,你就留他一命;如果他不肯事奉你,你要捉拿他也容易啊。”只是由于李元吉与妃嫔不断为李建成求情,封德彝也为李建成说项,李渊才改变主意。之后,李渊又数次向李世民提起让他当太子,但最后都不了了之。李渊之所以下不了这个决心,除了有人为李建成说情,最重要的恐怕是李渊自己对李世民的忌惮。要知道帝王的权力是不许他人分享的,也不许受到任何人威胁的,即便这个人是自己的儿子。
玄武门之变
李渊的第二个措施是把国家一分为二,分别由李建成和李世民掌管。一次,李世民到建成家里喝酒,回来后就吐血数升,似乎是中了毒。李渊知道后亲自看望李世民,对李世民说:“首建大谋,削平海内,都是你的功劳。我本来要立你为太子,结果你谦虚辞让;现在且建成年长,当太子日子也长,我不忍心废掉他。现在你们兄弟之间不能相容,如果都住在京城,必然会由纠纷。要不你就到洛阳去住吧,出了陕往东都归你管。你可以建天子的旌旗,效法汉朝汉梁孝王故事。”李世民同意了这个方案。但李建成、元吉认为这是放虎归山,将来不好办,就在李渊面前说:“秦王左右一听到洛阳去,都高兴的不得了,看样子他们是不想回来,要建独立王国了”。李渊耳根子软,加上还是猜忌李世民,这件事又不了了之。