唐宪宗元和九年(公元814年),彰义节度使、淮西留后吴少阳去世,其子摄蔡州刺史吴元济隐瞒死讯,向朝廷谎称吴少阳生病,由自己统领藩镇军务。
第二年年初,吴元济派军队侵扰抢掠,甚至到了东都洛阳附近。宪宗下诏削夺吴元济官爵,命令宣武等十六道进军讨伐。由于朝廷多处用兵,加上讨伐军队中一些将士消极观望,作战不力,因此讨伐并不顺利。
元和十一年(公元816年)年底,宪宗下诏让太子詹事李愬担任唐、随、邓节度使,讨伐吴元济。次年正月,李愬来到唐州。当时唐州的军队屡次战败,死了很多人,士兵们都害怕作战。
李愬得知这种情况,就对出来迎接的人说:“皇帝知道我性情温和柔弱,能够忍辱负重,所以让我来抚慰你们。至于攻城野战,就不关我的事了。”大家相信他的话,定下心来。
李愬亲自看望将士,体恤受伤的士卒,不摆威严的架子。他准备攻下蔡州,就向朝廷上表,要求增加兵力。他亲自询问投降的将士,因此对敌方地形的远近险易、兵力的虚实布置都了如指掌。
敌将吴秀琳投降,李愬抚着他的背,好言安慰他,他的3000人马统统臣服。吴秀琳的将领李宪有胆有识,李愬替他改名李忠义,用为手下。
之后李愬与吴秀琳商议袭取蔡州的事,吴秀琳说:“非李祐不能成功。”李祐是淮西的骑兵将领,很有谋略,李愬派人趁他外出之时将他捉了来。李祐过去杀过很多官军,将士们争着请求杀他,李愬不答应,给李祐松绑,以礼相待,对他信任有加。
九月,李祐向李愬进言说:“如今蔡州的精兵要么在洄曲,要么在边境戍守,在州城守卫的都是老弱残兵,可以乘虚而入,直抵州城。等到敌军有兵力反击之时,吴元济已经被我们捉住了。”李愬认为很有道理。
十月十五日,李愬命令马步都虞侯、随州刺史史珉驻扎在文城,命令李祐与李忠义率领敢死队3000人作为前锋,自己与监军率领3000人作为中军,命令李进诚率领3000人作为后军。
军队业已启程,还不知道朝哪个方向前进。李愬说:“尽管向东前进!”军队走了60里路,夜里到达张柴村,歼灭了所有戍守的淮西士兵和掌管烽火的人,占领了敌军的栅垒。
李愬命令将士稍稍休息,吃些干粮,整顿装备,留下500义成军镇守张柴村,截断洄曲与各条道路上的桥梁。然后连夜率领兵马出了张柴村,各路将领询问开进的方向,李愬说:“到蔡州讨伐吴元济!”
众将领大吃一惊,监军哭着说:“果然中了李祐的奸计了!”
当时,风雪大作,旌旗都被吹裂了,到处都是冻死的人马。天色阴暗,从张柴村往东去的道路,都是官军从来没走过的,人人都觉得必死无疑,但是都畏惧李愬,不敢违抗。
半夜,雪下得更大了。军队走了70里路,终于到达蔡州城下。城外有一个喂养鹅鸭的池塘,李愬命令哄赶鹅鸭,遮掩军队行走的声音。自从以前的节度使吴少诚谋反,已经有30多年没有官军来到蔡州城下了,所以蔡州人毫无戒备。
十六日,四更,李愬抵达蔡州城下,城里无人知晓。李祐和李忠义用锄头在城墙上掘出坑坎,率先登城,强壮的士兵紧随其后。
守卫蔡州城门的士兵正在熟睡,李祐等人把他们全部杀掉,只留下巡夜打更的人,让他照旧敲打木梆。于是打开城门,让大军进城。入城时,依旧采用这种办法,城里的人都没有发觉。
鸡鸣之时,已不下雪,李愬已经进入吴元济的外宅。有人向吴元济报告说:“官军到啦!”
吴元济还在睡觉,笑着说:“只是关着的俘虏作乱而已,等天亮后就把他们都杀了。”
又有人来报告,说:“州城沦陷啦!”
吴元济说:“这一定是洄曲的子弟来找我,请求派发冬装。”
他站起身来,走到院子里聆听,听到李愬军的号令:“常侍传话。”响应人数近万。
吴元济开始担心,说:“这是什么常侍,竟能到这里来?”因此带了人马,登上牙城,抵抗官军。
李愬派遣李进诚进攻牙城,毁坏了牙城的外门,攻下装兵器的仓库,获取了很多兵器。十七日,李进诚再次进攻牙城,焚烧了牙城的南门,当地居民争先恐后背着柴草来帮助官军,射在城墙上的箭如同刺猬身上的刺一样密集。
申时,城门被毁,吴元济在城楼上投降,李进诚用梯子接他下来。次日,李愬用囚车把吴元济押送往京城,并且派人通知了在外监军的宰相裴度。