回師途中,宋江陪魯智深到五臺山參師。他們拜見了長老,參拜了佛祖。臨別時,長老送魯智深四句偈言∶“逢夏而擒,遇臘而執,聽潮而圓,見信而寂。”魯智深不解其意,但拜受記牢。
宋江大軍回到東京,徽宗命樞密院商議封爵,但蔡京、高俅等卻拖延擱置。戴宗和石秀在外聽說河北田虎作亂,報告宋江。宋江認為與其在東京閑居,不如去打田虎,即請宿太尉奏知徽宗。
徽宗聞奏大喜,即封宋江為平北正先鋒,盧俊義為副先鋒,各賜御酒、金帶、錦袍、金甲,其余正偏將佐,各賜緞匹銀兩,說平定田虎后論功行賞,加封官爵。
河北田虎,原是威勝州沁源縣一個獵戶,乘水旱頻仍,人窮財盡,人心思亂之際,糾集亡命,占了五州五十六縣。他在威勝城建筑宮殿,自稱晉王,設文武官僚,內相外將,官兵無計斷除。
宋江統領大軍渡過黃河,連克陵川、高平二城,又乘勝奪取了蓋州,大軍進抵昭德。田虎大驚,便派會法術的喬道清到昭德去抵御宋江。
宋江率軍和喬道清對陣。只見喬道清掐訣念咒,把手一招,空中飛來五條巨龍,張牙舞爪,攪起一陣狂風向宋軍撲來。公孫勝把劍向空中一擲化成大鵬,把五條龍撲打得鱗散甲飄。喬道清大敗而逃。
宋江收復昭德即命盧俊義領兵進攻太原城。盧俊義見連日暴雨,即命李俊和張橫、張順、三阮帶領水軍,乘水勢暴漲,挖開智伯渠和晉水,乘大筏沖進太原城里,殺敗守軍,然后揮軍入城。
這時,田虎親領十萬大軍到銅山南御敵。宋江兵至,坐在九曲飛龍赭黃傘下的田虎剛要傳令出戰,忽報太原失守。田虎大驚無措,忙傳令收兵回保威勝城。
宋江見田虎要溜,忙令眾軍圍攻。田虎十萬之眾被宋江三路兵馬橫沖直撞,縱橫沖殺,潰不成軍。
田虎領五千殘兵敗將奔逃,張清領兵馬在后緊追。田虎剛跑到襄垣城下,忽聽有人大叫∶“田虎要活的!”胯下的坐騎突然驚躍嘶鳴,田虎落馬墜地,張清上前把他捉住。
宋江、盧俊義打進威勝城,沖進王宮內院,殺盡了偽尚書、偽殿帥、偽樞密等官員,把田虎解赴東京,徹底清除了田虎叛亂。
徽宗聞奏宋江平定田虎,龍顏大悅。當時淮西王慶又作亂,已攻破靠近東京的宛州,淮西申表告急。蔡京進奏道∶“乞陛下敕宋江不必班師,令他統領軍馬赴淮西清斷王慶。”徽宗準奏。
王慶原是東京一副牌軍,為童貫陷害刺配陜州,又被陜州牢城虐待。他殺了管營逃到房山,聚眾為盜,五年間占了八十六個州縣,在南豐自稱楚王,成為宋朝心腹之患。
宋江統領二十萬大軍征討王慶,一路攻克了宛城和山南州城,又與吳用計議,分兵兩路,副先鋒盧俊義率二十四名將佐及河北降將、五萬軍馬攻打西京;宋江攻打荊南。
宋江和盧俊義兩路人馬經過激戰,先后占領了西京和荊南,會師于南豐地界,準備攻擊南豐王慶。王慶以李助為元帥,兵馬都監劉以敬為先鋒,親自掌領中軍,與宋江決戰。
宋江和吳用經過嚴密部署,先以張青、王英、扈三娘等少量兵馬引誘王慶到龍門山下開闊地帶,只聽一陣炮響,由秦明、關勝、林沖、呼延灼、董平、索超、史進、楊志八員大將領兵擺成九宮八卦陣迎敵。
王慶剛擺好陣勢,就見宋江陣中出現三把銷金傘,三匹錦鞍駿馬上坐著宋江、公孫勝、吳用。宋軍中一陣戰鼓聲,林沖飛馬出陣,高喊∶“無知叛逆,天兵到此,還不投降!”王慶命柳元、潘忠出戰,被斬于馬下。
王慶見折了二將,忙令退軍。宋軍中一聲炮響,霎時八卦陣變成簸箕掌向敵軍圍去,又變成大圓圈,把王慶軍馬圍了起來。當下兩軍混戰,王慶大敗,丟下軍馬,不顧一切率親隨奪路逃跑。
王慶領著三十余人死命跑到清江邊上。早已等待多時的李俊扮成漁民撐船過來。船到江心,李俊放下竹篙,將王慶劈胸扭住,按倒在船板上。搖擼的童威幫李俊把王慶捆了起來。
宋江活捉王慶,收復了王慶占據的八十六個州縣,徽宗大喜。由于蔡京的阻撓,只封宋江為保義郎皇城使,盧俊義為宣武郎團練使。吳用等三十四人封為將軍,朱武等七十二人封為偏將,軍馬駐扎在陳橋驛。
年關將近,蔡京恐宋江等朝賀徽宗,受到重用,便出榜文告示,凡出征將軍官員只許在城外下營駐扎,非奉上司明文呼喚不能擅自入城。宋江等人聽說后無不心中焦躁,皆有反心。