甲寅日,李愬打算攻打吴房县,将领们说:“今天是往亡日,出兵不吉利。” 李愬说:“我们的兵力不足,不适合和叛军正面交战,就应该采取出其不意的战术。叛贼认为今天是往亡日,肯定不会防备我们,这正是攻打他们的好时机。” 于是率军出征,攻克了吴房县的外城,斩杀了一千多名叛军。剩下的叛军退守内城,不敢出城迎战。李愬率领军队撤退,引诱叛军追击,淮西将领孙献忠果然率领五百精锐骑兵从背后追击官军。官军士兵惊慌失措,想要逃跑,李愬当即下马,坐在胡床上,下令说:“有胆敢后退的,一律斩首!” 于是官军调转旗帜,奋力作战,斩杀了孙献忠,淮西叛军这才撤退。有人劝说李愬乘胜攻打吴房县的内城,认为一定能够攻克。李愬说:“这不是我的计策。” 于是率领军队返回军营。
李佑对李愬说:“蔡州的精锐部队都驻守在洄曲,以及蔡州四周的边境上,守卫蔡州城的都是些老弱残兵,我们可以趁着蔡州空虚,直接率军抵达城下。等叛贼的将领们得知消息,吴元济早就已经被我们擒获了。” 李愬认为他说得很有道理。冬季,十月,甲子日,李愬派遣掌书记郑澥前往郾城,秘密禀报裴度。裴度说:“用兵打仗,不采用出奇制胜的战术,就无法取得胜利,常侍的计策真是太好了。”
宪宗最终还是任命张宿为谏议大夫,崔群、王涯坚决劝谏,宪宗没有听从;二人只好请求任命张宿为权知谏议大夫,宪宗答应了他们的请求。张宿从此怨恨执政大臣以及当时品行端正的人士,和皇甫镈内外勾结,诬陷排挤这些人。
裴度率领幕僚佐吏在沱口视察修筑营寨的情况,董重质率领骑兵从五沟出兵,前来拦截,叛军大声呼喊着进军,拉满弓弩,手持利刃,形势危急,眼看就要逼近裴度。李光颜和田布奋力作战,抵御叛军,裴度才得以侥幸进入沱口的城中。叛军撤退时,田布率军扼守叛军在沟中的退路。叛军只好下马,翻越壕沟,很多人都失足坠落,被后面的人踩踏而死,死伤多达一千多人。
辛未日,李愬命令马步都虞候、随州刺史史旻等人留守文城栅,命令李佑、李忠义率领三千名突将作为先锋,自己和监军率领三千人作为中军,命令李进诚率领三千人殿后。军队出发之后,将士们都不知道要去哪里。李愬说:“只管向东前进。” 军队行进了六十里,到了夜里,抵达张柴村,将村里的叛军戍卒以及烽火兵全部杀死。李愬率军占据张柴村的营寨,命令士兵们稍作休息,吃些干粮,整理好战马的笼头和缰绳,留下五百名义成军士兵镇守张柴村,用来切断朗山叛军的援兵。又命令丁士良率领五百人,前去切断洄曲以及各条道路上的桥梁,然后趁着夜色,率领军队离开张柴村。将领们询问要去哪里,李愬说:“进军蔡州,捉拿吴元济!” 将领们听后,全都大惊失色。监军哭着说:“我们果然中了李佑的奸计!” 当时正刮着大风,下着大雪,军旗都被撕裂了,冻死的人马随处可见。天色阴沉昏暗,从张柴村往东的道路,都是官军从来没有走过的,人人都认为自己必死无疑,但是因为畏惧李愬,没有人敢违抗命令。到了半夜,雪下得更大了,军队行进了七十里,终于抵达蔡州城下。靠近蔡州城的地方有一处鹅鸭池,李愬下令驱赶池中的鹅鸭,让它们发出叫声,来掩盖军队行进的声音。自从吴少诚抗拒朝廷命令以来,官军已经有三十多年没有到过蔡州城下了,所以蔡州的叛军根本没有防备。壬申日,四更时分,李愬率军抵达蔡州城下,城中没有一个人察觉。李佑、李忠义手持锄头,在城墙上挖出一个个坑洞,率先登上城墙,强壮的士兵们紧随其后。守卫城门的叛军士兵正在熟睡,官军将他们全部杀死,只留下打更的人,让他像往常一样打更,然后打开城门,迎接大军入城。官军进入内城时,也采用了同样的办法,城中的叛军都没有察觉。等到鸡叫的时候,大雪停了,李愬已经率军进驻吴元济的外宅。有人向吴元济报告说:“官军已经攻进城了!” 吴元济还在睡觉,笑着说:“不过是那些被俘的囚徒在作乱罢了!等天亮之后,我就把他们全部处死。” 又有人前来报告说:“蔡州城已经陷落了!” 吴元济说:“这一定是洄曲的士兵们前来向我索要过冬的衣服。” 吴元济起床之后,来到庭院中,听到李愬军中的号令声说:“常侍传话!” 响应号令的人将近一万。吴元济这才开始恐惧,说:“是什么样的常侍,竟然能够率军来到这里!” 于是率领亲信登上牙城,抵御官军。
当时董重质正率领一万多名精锐士兵驻守洄曲。李愬说:“吴元济现在所指望的,就是董重质的援兵。” 于是李愬派人寻访到董重质的家,优厚地安抚他的家人,派遣董重质的儿子董传道带着书信前去劝降董重质。董重质于是单人匹马前往李愬的军营投降。
李愬派遣李进诚率军攻打牙城,摧毁了牙城的外门,攻占了兵器库,夺取了里面的武器装备。癸酉日,李进诚率军再次攻打牙城,放火焚烧牙城的南门,蔡州的百姓们争相背着柴草前来支援官军,