西京留守代王楊侑聽說東都被圍困,急忙派遣副將衛文升率兵前去支援。衛文升到達華陰,挖開楊素的墳墓,暴骨揚灰。隨後衛文升又擂鼓從崤澠出發,直接趕往東都,派兩萬騎兵前來挑戰。楊玄感先用老弱殘兵在前麵引誘,將精兵埋伏在後麵,誘使衛文升領兵追來。隨後,一聲鼓號,伏兵從四麵衝出,殺死衛文升手下士兵無數。衛文升慌忙逃回,前鋒隊已經被殺盡。三日後再次交兵,兩軍剛交鋒,楊玄感使詐,讓人大聲呼喊道:“官軍已抓獲楊玄感了。”衛文升的手下莫名其妙,紛紛東張西望,那楊玄感卻帶領幾千精騎突然殺入衛文升的陣內。衛文升麾下的士兵全都被嚇退,衛文升也好像在做夢一般,隻好跟隨眾人逃走。楊玄感乘勢窮追猛擊,把衛文升的軍隊三四萬人殺死了一大半,隻剩下八千人保護著衛文升,狼狽逃去。楊玄感兵威大震,乘勢依附的人多達十萬人。
右武候大將軍李子雄曾因犯罪被煬帝除名,煬帝詔令他跟隨來護兒東征,將功贖罪。自從楊玄感叛變後,煬帝防備李子雄暗中接應楊玄感,便下令把他鎖在行宮中,李子雄竟然殺死詔使,逃奔到洛陽,投入楊玄感的軍中,他勸說楊玄感立號稱王。楊玄感轉而詢問李密,李密答道:“秦朝的陳勝想要稱王,張耳勸諫遭到斥責,魏武帝要求九錫禮,荀彧勸阻結果被殺。現在我想直言相勸,又擔心像前代二人一樣;如果阿諛奉承,又違背了我的本意。試想您從黎陽起兵,雖然多次得勝,但終究沒有攻下一郡一縣。再者東都防守如此堅固,天下救兵指日將到,您這時不挺身力戰,盡早平定關中,反而急於稱王立號,實在有些不妥,請您三思!”楊玄感隻獰笑一下,沒再說話,暫時將稱尊之事擱置一旁,但他不免心生芥蒂,漸漸和李密疏遠,而將韋福嗣視為心腹。而韋福嗣每次出謀劃策,都是首鼠兩端。李密又勸諫楊玄感道:“韋福嗣不是我們的同盟,他來我軍中隻是觀望形勢。您剛剛起兵舉事,就把奸人留在身邊,被他蠱惑煽動,他日一定會貽誤軍機,不如先將他殺死。”楊玄感搖頭說道:“你說得太嚴重了,韋福嗣還不至於如此。”楊密退下後對親友說道:“楊公不聽我忠言相勸,反而相信奸人,隻怕日後我們都會成為俘虜了。”
不久,煬帝已經從高麗返回涿郡,發兵四麵圍攻叛軍。煬帝命令武賁郎將陳棱攻打黎陽,武衛將軍屈突通趕往河陽,左翊衛大將軍宇文述隨後接應,右驍衛大將軍來護兒也從東萊趕回去增援,就連兩戰兩敗的衛文升也收拾殘眾,逼近邙山南麵,前來決一死戰,與楊玄感一天幾場惡戰。楊玄感的弟弟楊玄挺傷重而死,部屬也日漸戰死,人數越來越少。楊玄感這時才感到害怕,他又聽說屈突通率兵將到,急忙和李子雄商量對策。李子雄說道:“屈突通曉習兵事,一旦渡河而來,勝負很難預料。此時我們應該分兵前去阻擊,不要讓他渡河前來。”楊玄感依議而行,便想派兵去阻擊屈突通,偏偏樊子蓋看破了機關,屢次出兵來騷擾楊玄感的軍營。楊玄感沒有時間分兵,隻能眼睜睜看著屈突通的大軍長驅而來,於是楊玄感東有屈突通,西有衛文升,再加上樊子蓋主動出擊,三路圍攻,任你楊玄感如何驍勇善戰,也是招架不住。三戰三敗之後,楊玄感又向李子雄討問計策,李子雄說道:“東都的援軍四麵齊集,我師屢次戰敗,怎麼可以久留呢?不如直接殺入關中,占領關中的府庫,再往東爭雄天下,也不失為霸王的事業。”於是楊玄感撤去洛陽的圍兵,率眾西行,到達弘農宮。當地百姓對楊玄感說道:“城中空虛,又有許多糧食,為什麼不立即攻打?”於是楊玄感留下來攻城,李密認為此舉不妥,催促他立即離開,楊玄感仍然不肯聽從。結果叛軍攻打了三天,仍然沒有攻破。那屈突通、宇文述等人已經陸續追來,楊玄感又不得不邊戰邊走。楊玄感逃到董杜原時,被追軍圍困住,楊玄感大敗,隻率領十幾個隨從突圍而出,逃竄到山林間,輾轉到達葭蘆戍,幾個人饑渴交迫。楊玄感自知難免一死,回頭看向後方,隻有弟弟楊積善跟隨著,於是哭著說道:“今日兵敗到這個地步,我已無話可說。但我不能被人辱殺,你可以殺了我。”
楊積善怎麼忍心下手,忽然見到後麵塵土飛揚,料知有官軍追來,因此抽刀砍死楊玄感,正準備自殺時,遲疑間手抖刀落,後方的追兵趕來,抓住楊積善,並將楊玄感的屍體送到行宮。煬帝命人將楊積善處死,將楊玄感的首級懸掛在行宮示眾,並將他的屍體拋在東都街市暴曬三天,隨後又割肉投入火中,燒成灰燼。楊玄感的弟弟楊玄縱和楊萬碩從遼東潛逃回來,楊萬碩逃到高陽,被監軍許華抓獲,送到涿郡斬首。楊玄縱逃到黎陽,打探到楊玄感敗亡的消息後,身穿民服,隱姓埋名,不知下落。還有義陽太守楊玄獎、朝請大夫楊仁行都是楊玄感的弟弟,他們一個在義陽,他們一個在長安,全都被處死,楊玄感餘黨至此全部被蕩平,隻有李密一人逃走了。
煬帝想要徹底清除叛黨,於是命令大理卿鄭善果到東都嚴加查辦。鄭善果興奮地說道:“楊玄感振臂一呼,就有十多萬人響應,可見天下人不能太多,多即為盜,如果不將他們殺盡又如何懲戒後人?”於是鄭善果派兵四處抓捕,不分主從,一律斬首,先後竟殺死三萬多人。兵部侍郎斛斯政跟隨聖駕東征,曾和楊玄感暗地裏通謀,這時也擔心坐罪,便逃入高麗。斛斯政和弘化留守元弘嗣有姻親關係,煬帝因斛斯政逃亡,便懷疑到元弘嗣頭上,立即派衛尉少卿李淵趕到弘化,把元弘嗣關押到獄中,命令李淵留守弘化。這衛尉少卿李淵是隴西郡成紀人,表字叔德,長得儀表雄偉,相貌堂堂,頗有帝王日角龍庭之相。若要追溯李氏的淵源,就要從西涼武昭王李暠七世孫算起,他的祖父李虎輔佐北周取代西魏,賜姓大野氏。李虎死時被加封為唐公,兒子李昞襲承爵位。李淵是李昞的兒子,又襲承父親的爵位,官拜衛尉少卿,自此便留守在弘化,弘化便是唐朝的發源地。煬帝又怎能預料,總以為他事君忠心耿耿,才把他委派出去。不過那時的李淵也確實盡忠效力,依詔奉行。