安史之亂打破了盛唐歌舞升平的景象,唐王朝從此一蹶不振,各地藩鎮擁兵自立。盤踞在蔡州的吳元濟也公開反叛朝廷,欺壓百姓。唐憲宗多次派兵征討,均未奏效。公元816年,官居左散騎常侍的李,毛遂自薦,擔任隨、唐、鄧節度使,率兵征討吳元濟。
公元817年正月,李來到前線唐州(今河南省泌陽縣),見士卒連戰皆敗,十分懼戰,便對將士說:
“皇帝派我來不是為了打仗,而是來撫慰你們的。”士氣低落的將士,聞言皆十分感動。吳元濟本來就輕視李,聞訊後信以為真,對唐軍不再嚴加防範。
而李卻暗地裏積極厲兵秣馬,修繕軍械,增調步騎兵,加緊備戰。
淮西地區由於幹戈不斷,民眾貧困,百姓對吳元濟的殘暴統治日益不滿,大批逃往唐軍地區。李采取了以誠待士、分化瓦解敵軍的方針,派專人安撫、管理難民,對投誠士兵也以禮相待。敵將丁士良曾多次打敗唐軍,李俘獲他後,親釋其縛,任命他為“捉生將”。丁士良大受感動,向李獻策:要滅吳元濟,應先斷其“左臂”,攻打蔡州西南文城(今河南遂平)守將吳秀琳。並親自活捉了吳秀琳的謀士,勸說吳秀琳舉城投降。李進軍文城,安撫降卒,在詢問降卒時,詳細了解了淮西地形及兵力布防。降將吳秀琳由於受到厚待,也積極向李出謀獻策,幫助李收服了興橋柵守將李佑。
李軍先後攻戰文城、興橋柵等軍事要地,而唐軍主力、北路軍忠武節度使李光顏等軍在郾城也擊敗了淮西軍主力3萬人。吳元濟見狀,便調蔡州部隊加強洄曲(郾城東南)守軍,將主要兵力放在北線,致使蔡州城防空虛。已降唐軍的李佑。即向李獻計:
“蔡州精兵已全部調往北線,我們可以乘虛直抵其城,生擒吳元濟了。”為了隱蔽作戰企圖,為奇襲蔡州創造條件,於是,李立即發兵攻打吳房(今河南遂平),攻克了外城,殲敵千餘。有人勸李乘勢攻取子城,一舉可拔。李說:“這樣做不符合我的計謀。”因此立即引兵還營。吳房一戰,一則麻痹吳元濟,二則通過實戰演練部隊進攻能力。經過吳房試攻,李認為襲擊蔡州的條件成熟了,便向主帥裴度請戰,陳述了襲擊蔡州的計劃,裴度感到李的計劃很好,表示同意。至此,萬事俱備,隻等確定具體出兵日期了。
10月15日這天,天色陰沉,北風怒吼,淮西地區下起了鵝毛大雪。李盼望已久的氣候條件具備了。在絕對保密的情況下,他命令隨州刺史史溫留守文城,命李佑。李忠義率精兵3000為先鋒,令李進誠率3000兵馬殿後,自己親率3000中軍帶上一頓幹糧,向蔡州進發。唐軍奔襲60裏,黃昏時到達軍事要地蔡州地界的張柴村,李率領前鋒以迅雷不及掩耳之勢消滅了守軍和看守烽火台的人員,占領了張柴村。李傳令全軍在張柴村稍作休息,讓大家抓緊吃幹糧,迅速整理馬匹和準備武器。接著,他令部將義成軍率500人留守張柴村,截斷洄曲、朗山、吳房通往蔡州的路和橋,然後,全軍取道一條從沒有人走過的險路,直襲蔡州。入夜,風雪大作,氣溫驟降。李嚴令全軍急速前進,經過70裏的雪夜強行軍,終於克服重重困難,於淩晨趕到蔡州外城。當時,李有9000多人馬,雖然嚴令部隊保持肅靜,但聲音嘈雜,仍有較大的響聲,如被城內守軍聽到,就要壞事。可是這麼多人馬要想不出一點聲音又辦不到。恰好偵探來報:城邊發現了好些鵝圈、鴨圈。李喜出望外,計上心來,立即派了一些士兵拿棍子去攪趕鵝鴨,使之亂叫,借以掩蓋人馬的腳步聲。李督軍趁機急進,兵臨城下。