令狐潮退兵后,张巡又探知有燕军步、骑兵七千余人进驻白沙涡(今宁陵北),想切断雍丘后路。于是张巡在夜间率兵突袭,大败燕军。当张巡回军经过桃陵(今河南汜水县东南十里)时,又与四百余名燕军救兵相遇,全部将其俘虏,并把当中的胁从兵释放,令其各归其业。在这来回十日里,张巡威名远播,民众脱离燕军前来雍丘归附张巡的达一万余户。这时为止,张巡在雍丘被围已有四月,围城燕军常有几万人,而张巡仅有千余士兵,但每战皆捷。于是,河南节度使虢王李巨进驻彭城(今江苏徐州市),授张巡为先锋。
同月,令狐潮率领叛将瞿伯玉再次攻城。令狐潮先派四人,假装朝廷使者,说皇帝要诏见张巡,要求张巡前往。四人被张巡识破,经逼问招供后被杀。其余随从被压往吴王李祗处。不久,令狐潮撤退。
八月,燕军将领李庭望率领蕃汉兵二万余人向东袭击宁陵与襄邑,夜里在雍丘城外三十里处宿营。结果,遭到张巡率领的三千士兵,手持短兵器夜袭。燕军大败,死伤大半。李庭望只得收兵连夜而逃。
十月初四,令狐潮又与叛将王福德一同率领步、骑兵一万余人进攻雍丘。张巡再领兵迎击,大败燕军,杀敌千人。燕军败逃而去。
十一月初八,令狐潮率兵一万余人扎营于雍丘城北面,张巡领兵邀击,大败燕军,燕军逃走。
到了十二月,由于数月来令狐潮、李庭望对雍丘屡攻不下,燕军遂在雍丘北面的杞州,构筑杞州城以断张巡的粮食补给。此月,鲁郡(今山东兖州)、东平(今山东东平西北)相继被燕军攻陷,济阴郡(今山东定陶西南)太守又高承义献郡投降燕军。虢王李巨便守彭城(今江苏徐州),领兵退守临淮。叛将杨朝宗率步、骑兵二万意图攻取宁陵,以断张巡后路。于是,张巡主动放弃雍丘,率马三百匹、将士三千余人移师向东,坚守宁陵,始与睢阳太守许远、城父令姚訚等在宁陵合兵。
当日,杨朝宗率兵进至宁陵城西北后,张巡、许远派部将雷万春、南霁云领兵迎战,经过一昼夜激烈厮杀,大破杨朝宗部,杀叛将二十员,斩首万余级,死尸塞满汴水,顷流而下。杨朝宗收集残部,连夜逃去。因战功显赫,秦献武帝下敕书任命张巡为河南节度副使。张巡为有功的部下们请功,派遣使者向虢王李巨请求给予委任状以及赏赐物品,而虢王李巨只给了折冲都尉与果毅都尉的委任状三十通,没有给予赏赐的物品。张巡就写信责备李巨:“宗社尚危,围陵孤外,渠可吝赏与赀?”李巨竟一直不予以理睬。
此役,张巡审时度势,主动放弃雍丘,退守宁陵,变被动为主动,从而获胜。
张巡像