那彥成抵達衛輝之後,並不急於出擊,而是等待各省援軍彙集。嘉慶急於求成,在諭旨中大罵那彥成:“李文成株守滑縣,機不可失。朕日夜焦慮,寢食俱廢,望汝速剿大逆。不想汝到衛輝遲疑不進,逗留觀望。大失朕望,具何肺腸,忍心病狂,天良何在?今日之旨,是汝生死關頭,信與不信,憑汝自議。汝若再有遲疑,朕永不見汝之麵矣。”
皇帝的狠話放了出來,本以為那彥成會提兵速進了。不想那彥成回奏稱:“教軍數萬,我軍數千。攻之有餘,圍之不足。”
嘉慶看了之後,連罵都提不起精神了,批複:“看汝造化,無可訓示。”
待兵力集中後,那彥成、楊遇春先對被天理教占領的道口發起攻勢。大炮轟鳴之下,道口城破,清軍湧入。天理教徒守道口的有一萬五千人,陣亡者過萬,餘部撤退到滑縣。道口之戰中,天理教頭目、武林高手馮克善“獨騎白馬,持大刀奔山東去”,以聯絡山東的天理教徒。
此時天理教隻剩下滑縣一個據點,困守孤城。十一月初一,桃園的天理教頭目劉國明帶八百人衝入城內,經過商量之後,決定由劉國明用輕車將雙腿受傷的李文成帶出城,前往山東。天理教主力由李文成之妻及牛亮臣等人率領,留在滑縣固守待援。
清軍圍攻滑縣,架起大炮轟擊,不想滑縣城是土城,炮彈轟入後沒有效果。清軍改挖隧道,又被發現,狼狽逃回。滑縣雖然被圍,但守城的天理教徒卻絲毫不懼,李文成妻子張氏親自指揮防守,一度還帶領人馬出城偷襲。
馮克善從道口奔出之後,清廷在各地布置抓捕。十一月十九日,馮克善行抵直隸獻縣三角村時,被知縣張翔抓獲。抓捕時,懾於馮克善武藝高強,在馮克善叛變的徒弟安排下,設下酒席,屋內密布桌凳,並在桌上放了熱粥,酒中暗放迷藥。馮克善到了之後,先是將他的兵器藏起,又用熱粥潑在他身上,隨後伏兵四起,格鬥良久,方才擒住。
李文成逃出滑縣後,在各處受阻,根本無法突破封鎖前往山東,遂占據太行山下險要據點司寨。十一月十九日,在馮克善被擒的同時,清軍設下埋伏,引誘李文成軍出司寨交戰,結果三千餘人,陣亡約二千四五百人。被俘的二百人全數被清軍於陣前處死,極其殘酷。李文成殘部退守司寨。
次日,清軍主力發起攻擊。司寨地勢險要。清軍頂著如雨般的槍石攻入司寨,將天理教徒趕下寨牆。寨內街道逼窄,短兵相接之後,天理教徒退守民房。寨內有民房二百幾十間,皆是磚石砌成,又有碉樓七八處,堅不可摧。清軍見強攻傷亡太多,遂改用火攻,在大火之中,天理教徒逃出被擒者有二百餘人。李文成帶領殘部退守於碉樓內。
清軍圍住碉樓後,有天理教徒呐喊著:“我是劉國明。”持刀躍出,接連砍翻兩名清軍,方被清兵開槍擊斃。
見天理教徒拚死反抗,清軍就在碉樓下吆喝:“擒李文成來獻者有賞。李文成隻要出來投降,其餘人均免死。”
李文成從樓上站出道:“李文成在此,隻管用槍來打,斷不出降。”
清軍本意是生擒住李文成,好獻給嘉慶請功,見誘降無望,遂全力攻樓。李文成與幾十名追隨者擁抱在一起,於碉樓上點火自焚。
李文成由於在滑縣時受刑,腿部有傷,並貼有膏藥,用棉布包裹。據此清軍找出李文成屍體,隨即在山東、直隸、河南各地展示。在搜索時,清軍尋出旗幟一麵,上書“大明天順李真主”。
十二月初十,各路清軍會齊滑縣城外五門,同時發起攻擊。清軍久攻不下,遂點燃埋在城下地道中的火藥,將南門、西門轟塌,隨後衝入城內。