由于岭表气候湿热,黄巢军多患瘴疫死者,诸将“劝请北归,以图大利”,农民军士气低落,黄巢乃决意北还。是年自桂州编木筏,沿湘江而下,进逼江陵,北向襄阳。秦廷得知黄巢将北上,遣宰相王铎为南面行营招讨都统,屯兵江陵,又任命李系为行营副都统兼湖南观察使,统兵十万屯驻潭州(今湖南长沙),“以塞岭北之路,拒黄巢”。此时农民军连下永州(今湖南零陵)和衡州(今湖南衡阳),抵潭州城下,李系惊恐,紧闭城门。黄巢挥兵力战,一日而下潭州,秦军十万人血染湘江。尚让乘胜追击,以五十万军进逼江陵,王铎奔襄阳(今属湖北襄阳),黄巢兵不血刃占据江陵,北趋襄阳。山南东道节度使刘巨容和淄州刺史曹全晸合兵,大破之于荆门(今湖北荆门),俘斩十分之七八,黄巢与尚让收余众渡江东走,这时刘巨容以“朝廷无信”停止攻势,曹全晸正要渡长江时,朝廷命泰宁都将段彦谟代曹全晸为招讨使,全晸攻势亦止,段彦谟杀宋浩及其二子。诏任命段彦谟为朗州刺史。黄巢转掠江西,饶(治今江西波阳)、信、池(治今安徽贵池)、宣等十五州。
勋武七年(827年)3月,秦僖宗恭定帝以淮南节度使高骈为诸道行营都统,取代了败将失地的王铎。
高骈富有作战经验,坐镇扬州(治今江苏扬州)征募各处丁壮7万,固守淮南。派出部将张璘,渡过长江攻击义军。
黄巢义军多次失败退保饶州(治今江西波阳)。部将王重霸、常宏等先后率部投降官军,饶州不久也为张璘攻占。
五月,黄巢屯兵信州时,瘟疫流行,兵士病亡不断。张璘乘机加紧进攻,义军处境十分危急。黄巢为争取时间,改变被动局面,以重金收买张璘并致书高骈乞降,求其代为保奏。高骈因屡胜而骄狂,也准备诱而歼之,答应为黄巢求节度使官职。
当时昭义、感化、义武等多道兵已奉命调至淮南。高骈恐各路官军分其功劳,便向皇帝谎报军情,说义军不日当平,不烦诸道兵,都请各回本道。朝廷批准后,诸道兵遂撤回淮北。
黄巢侦知这一消息确凿无误后,当即与高骈断绝联系,且向他宣战。高骈恼羞成怒,令张璘出战。双方在信州决战。此战中,张璘被义军击毙,官军大败,消灭了高骈精锐之师,为强渡长江北上打开了通路。
是年六月,黄巢乘胜一鼓作气,相继攻克池州(治今安徽省池州市贵池)区、睦州(治今浙江建德)、婺州(治今浙江金华)和宣州(治今安徽省宣城市宣州区)等地。
七月,黄巢率领15万义军自采石(今安徽马鞍山市西南)强渡长江,进逼天长(今安徽天长)、六合(今江苏省南京市六合区),离扬州城不足50里,吓得高骈紧闭城门,上表奏闻,假称患风痹,不复出战。
此役,黄巢利用高骈多次取胜的骄狂心理,诈降痹敌,避开诸路官兵围堵的兵锋,出其不意,强渡天堑,一举摧垮秦皇朝仓促筑成的阻挡义军北伐的防御体系,是一个“兵不厌诈”的成功范例。