在开国的战役中,李渊的儿子建成、世民、元吉都很得力,而世民尤其英武。当李渊起兵太原(六一七)时,世民才二十岁,已身为大将,领兵由山西到陕西,取长安。次年李渊称帝,世民又平定甘肃、四川等地。唐在西北方面的地位既稳固了,世民又来争取中原。是时河南的王世充与河北的窦建德,是两个最强的割据者,与唐成为三分鼎足之势。世民先攻世充。世充兵势甚盛。世民选精锐千余骑,皂衣玄甲,分为左右对,使几员猛将分领。每战,世民亲披玄甲,率领这一军为前锋,所向无敌。世充退守洛阳,世民又进兵围洛阳城。城中守御甚坚,唐将士都疲困想回去,世民不许。高祖知道了,密勃世民班师,世民也不听,围攻更急。窦建德率大兵十余万来救世充,先写信给世民请退兵潼关讲和。世民集众将商议,都愿班师。世民还是不肯,乃分兵一部围洛阳,自率精兵东进,去解决窦建德,在月余之间便把他生擒到手。世充失了外援,只得请降,此后统一的进行便一帆风顺了。
世民虽然功高,但因为建成居长,高祖在几番犹豫之后,仍决定以建成为太子。这事使世民心中不平。建成亦忌世民功高权重,想除掉他。两人仇隙日深,势不两立。世民的幕僚部将都劝世民先下手为强。有一天建成、元吉要入朝,世民乘他们不备,率勇士九人,守候在宫城北的玄武门,把他们杀掉。世民箭法甚好,亲自射死建成。高祖闻知,亦自无法,只得改立世民为皇太子,当年(六二六)就传位于世民,世民即唐太宗。