大业十三年正月,又遣陈棱征讨江淮一带起义军中力量最强大的杜伏威。隋军大败,起义军乘胜攻破高邮(今江苏高邮北),占历阳(今安徽和县),杜伏威自称总管,以辅公柘为长史,很快控制了淮南各县。
江淮间小股反隋武装多来归附,形成了江淮间巨大的起义力量。
从大业十三(617)年三四月瓦岗军围逼东都开始,以瓦岗军为中坚,以窦建德、杜伏威为两翼的农民起义军,对隋王朝进行了摧毁性的打击。六月,瓦岗军大败隋军,东都危急。七月,炀帝抽调“江淮劲卒”和“燕地精兵”奔赴东都,涿郡留守薛世雄统率燕地精兵三万南下攻瓦岗军,兵至河间(今属河北),营于七里井,准备会合河间诸县兵先行镇压窦建德起义军。
窦建德指挥部队从各城中撤出,向南转移,然后乘薛世雄不加防备,选精兵数千人为伏兵,亲率敢死之士280人夜袭。三万隋军溃散,薛世雄带数十骑逃回涿郡。窦建德起义军又重新控制了河北的大部分地区。
瓦岗军占领黎阳仓,开仓赈济饥民,扩大起义队伍数十万人。炀帝又命江都通守王世充统率洛阳附近诸郡兵与东都留守兵共十余万人,在洛水两岸同瓦岗军展开激战
。王世充屡战屡败,有些隋将投降李密。这时洛阳城内缺粮,饿死的人很多。
河北、山东、河南和江淮流域都被起义军占领,隋的军事力量也大部被起义军消灭,隋王朝直接控制的地方越来越狭小。
形势对瓦岗军非常有利。但由于瓦岗军内部矛盾日益加深,李密始终不肯改变在洛阳城下与隋军主力长期鏖战的错误战略,所以没有取得决定性胜利。
大业十四年(618)三月,在江都的隋禁军将领利用关中士兵思归的情绪,推宇文化及为主,发动兵变,杀死隋炀帝,领兵西归。
五月,李渊在长安即皇帝位,建立唐朝。留守东都的隋越王侗也在洛阳即皇帝位,改元皇泰,史称皇泰主。
炀帝死后,阶级关系发生很大变化。杜伏威上表于洛阳小朝廷,皇泰主拜伏威为东道大总管,封楚王。
李密也在宇文化及大军压境的情况下,为了避免腹背受敌,向皇泰主称臣。李密大破宇文化及的军队,但自己的兵力损失也很大,于九月被实际控制东都的王世充乘虚打败,投降李渊。只有窦建德的夏政权在河北仍保持独立。