当时昆阳的形势非常危急,王莽的大军将它围了个水泄不通,设下了数十道防线,树起十多丈高的楼车,站在上面观察昆阳城内的情况。负责守城的主将王凤实在抵挡不住了,被迫向王寻投降,但好大喜功的王寻等人拒绝了他们投降的请求,认为攻下该城指日可待,用不着接受投降。
刘秀好不容易才召集齐军队,自己率领1000多人打前锋,大军跟随其后。刘秀在离敌人四五里的地方摆下阵势。王寻等人派了几千人前来迎战,刘秀身先士卒,冲入敌阵,砍下几十个敌人的脑袋。将士都高兴地说:“刘将军平时见到小股敌人都害怕,今天却这么英勇,实在让人感到奇怪。让我们也去助刘将军一臂之力吧!”刘秀再次发动进攻,王莽的部队抵挡不住,纷纷后撤,起义军乘机发动攻击,杀死成百上千的敌人。王寻派来的几千人被杀得大败。起义军初战告捷,士气大振,于是继续进军。
昆阳之战示意图
当时刘秀并不知道他的哥哥已经攻下了宛城,但他故意派人装成宛城的使者带着假报宛城已经被攻下的书信前去通知昆阳的守军,然后让那人故意把书信弄丢。王莽的士兵捡到书信后交给了王寻他们,王莽的士兵们听说宛城被攻了下来,士气更加低落。刘秀亲自率领敢死队,从城西向王莽部队发动突袭,敢死队员们士气高涨,无一不是以一当百,王莽的部队抵挡不住,阵势大乱,中军被冲垮,王寻在乱军之中被杀死。这个时候昆阳的守军也杀出城来,王莽的部队被内外夹击,更是心惊胆战,纷纷溃逃。士兵们相互践踏,被自己人踩死的士兵不计其数。正好当天又下起了暴雨,电闪雷鸣,那些被拉来助威的猛兽也吓得撒腿乱跑。渡河的时候,河水暴涨,士兵们又抢着渡河,被推下水淹死的士兵数以万计,尸体把河水都堵住了。王邑等人只好丢下军队,骑上快马拼命逃跑,好容易才捡回了一条小命。王莽部队丢弃的军用物资不计其数,起义军搬了几个月都没能搬完,只好一把火把剩下的都烧掉了。