礼部尚书杨玄感是已故楚公杨素的儿子。他十分骁勇,善于骑射,喜好读书,广交宾客。杨素在世时自恃有功,就骄傲轻慢。等到杨素去世,炀帝对身旁的近臣说:“如果杨素不死,最终也得被诛灭九族。”杨玄感知道这些,而且自认为家中几代都是显贵,在朝的文武大臣很多是他父亲以前的部下,看到朝政日益混乱,炀帝对他又很猜忌,于是和几个弟弟暗地谋划叛乱。
大业九年(公元613年)隋炀帝出征海外,让杨玄感到黎阳监督水运。杨玄感故意滞留,拖延水运,不按时进发,想让渡过辽河的各路军队缺乏粮草。炀帝派遣使者催他,杨玄感声称水路上有很多盗贼,不能按时运送。
当时,右骁卫大将军来护儿率领水军,准备从东莱入海,进军平壤。杨玄感派家奴伪装成从东方来的使者,假称来护儿谋反。六月初三,杨玄感进入黎阳,关闭城门,大肆招集男丁,用帆布做头盔铠甲,部署官员,都按照隋文帝的旧制。同时向附近各郡发送文书,以讨伐来护儿为名,命令各郡发兵在黎阳仓汇合。
杨玄感在运送粮草的民夫中,挑选出身强力壮的五千多人,丹阳、宣城的船夫三千多人,宰杀三牲,与大家盟誓,对他们说:“主上无道,不顾念百姓,使天下骚扰,死在辽东的人数以万计,现在与你们起兵拯救百姓,怎么样?”大家都高呼万岁。
杨玄感进军攻打东都,到了七月中旬,还没有攻下来。这时,前来讨伐的左候卫将军屈突通已到达河阳,左翊卫大将军宇文述紧随其后。有人给杨玄感出主意,让他放弃洛阳,进入关中。二十日,杨玄感解除对东都的包围,率领军队向西进逼潼关,宣称:“我已经攻破东都,现在要去攻取关西!”宇文述等各路军队跟随在后面。
杨玄感路过弘农宫,弘农太守蔡王杨智积对手下的官员说:“杨玄感的大军即将抵达,想要向西夺取关中,他一旦成功,就很难攻克了。应当用计谋牵制住他,让他无法前进,不出十天,就可以把他抓获。”杨玄感的大军抵达城下,杨智积登上城墙大骂。杨玄感十分恼怒,于是就停止进军,留下攻城。
蒲山公李密劝谏说:“您现在假称已攻破东都而西进,兵贵神速,何况追兵即将抵达,怎么能停留呢?要是前进不能占据潼关,退后又无地可守,大军逃散,那该怎么保全自己?”杨玄感不听,率领大军进入,放火焚烧弘农城门。杨智积从城里放更大的火,杨玄感的士兵不能进城,过了三天仍然没有攻下城池,于是率领军队西进。
宇文述、卫文升、来护儿、屈突通等各路军队在皇天原追上他。杨玄感布下阵势,绵延五十里,一边交战一边进军,在一天之内被打败了好几次。
八月初一,杨玄感在董杜原布阵,隋朝各路大军一起进攻,杨玄感大败,带领十几名骑兵逃往上洛。到达葭芦戍,杨玄感和他的弟弟杨积善步行,知道自己难以逃脱,就对杨积善说:“我不能忍受别人的侮辱,你可以杀了我!”杨积善抽出佩刀杀死杨玄感,然后自杀,没有死成,被追兵擒获,与杨玄感的首级一起押送到炀帝所在的地方。