不久,張巡又向令狐潮傳話:“如果你要得到這城,可以送馬三十匹,我得到馬之後,就要出奔了,到時你就可不血刃而得道雍丘。“令狐潮取城心切,照數送了三十匹馬給張巡。張巡得到馬後,挑選出三十位驍勇將士,將馬分給他們,相約道:“燕軍若來,每人殺一敵將。”第二天,潮率兵來到城下,責備張巡失約。張巡答道:“我想逃,但將士們不讓我走,有什麼沒辦法?”令狐潮知又中計,大怒,正想攻城。未等軍陣排好,城內突然有三十驍騎率兵殺出。燕軍因為軍陣未成,一時大亂。三十鐵騎率兵,左挑右殺,擒獲十四名叛將,斬百餘首級,還繳獲不少兵械牛馬。令狐潮退到陳留(今河南開封),一時不敢再攻雍丘。
令狐潮退兵後,張巡又探知有燕軍步、騎兵七千餘人進駐白沙渦(今寧陵北),想切斷雍丘後路。於是張巡在夜間率兵突襲,大敗燕軍。當張巡回軍經過桃陵(今河南汜水縣東南十裏)時,又與四百餘名燕軍救兵相遇,全部將其俘虜,並把當中的脅從兵釋放,令其各歸其業。在這來回十日裏,張巡威名遠播,民眾脫離燕軍前來雍丘歸附張巡的達一萬餘戶。這時為止,張巡在雍丘被圍已有四月,圍城燕軍常有幾萬人,而張巡僅有千餘士兵,但每戰皆捷。於是,河南節度使虢王李巨進駐彭城(今江蘇徐州市),授張巡為先鋒。
同月,令狐潮率領叛將瞿伯玉再次攻城。令狐潮先派四人,假裝朝廷使者,說皇帝要詔見張巡,要求張巡前往。四人被張巡識破,經逼問招供後被殺。其餘隨從被壓往吳王李祗處。不久,令狐潮撤退。
八月,燕軍將領李庭望率領蕃漢兵二萬餘人向東襲擊寧陵與襄邑,夜裏在雍丘城外三十裏處宿營。結果,遭到張巡率領的三千士兵,手持短兵器夜襲。燕軍大敗,死傷大半。李庭望隻得收兵連夜而逃。
十月初四,令狐潮又與叛將王福德一同率領步、騎兵一萬餘人進攻雍丘。張巡再領兵迎擊,大敗燕軍,殺敵千人。燕軍敗逃而去。
十一月初八,令狐潮率兵一萬餘人紮營於雍丘城北麵,張巡領兵邀擊,大敗燕軍,燕軍逃走。
睢陽地當睢陽渠要衝,位置非常重要。至德二載(757年),安祿山死後,其子安慶緒派部將尹子琦率同羅、突厥、奚等部族精銳兵力與楊朝宗合,共十幾萬人,進攻睢陽。麵對強敵,張巡、許遠激勵將士固守,從早至午,接戰20餘次,士氣不衰。許遠自以才能不及張巡,推張巡為主帥,而自己管籌集軍糧和戰爭物資。張巡任主帥後首先清除了內部叛將田秀榮,然後率軍出城主動襲擊叛軍,將叛軍打得大敗而逃,並繳獲了大批車馬牛羊。張巡把這些戰利品都分給了將士,自己分毫不要。這次大捷之後,朝廷拜張巡為禦史中丞;許遠為待禦史;姚訚為吏部郎中。
到了五月,正是麥熟時節,叛軍在城外收麥以充軍糧,張巡在城上看到後,集結士兵,擂鼓作出欲戰的樣子。叛軍見狀立刻停止收麥待戰。這時,張巡止住擂鼓,讓軍士作出休息的樣子,叛軍見狀放鬆了警惕。張巡抓住時機命南霽雲率軍大開城門突然衝出,直搗尹子琦大營,斬將拔旗。與此同時,有叛軍大將率一千餘騎兵直逼城下招張巡投降。張巡在城上一邊與敵將答話,一邊暗命勇士幾十人手持鉤、陌刀、強弩從城上吊下潛入無水的護城壕中,趁城外叛軍依仗人多勢眾並不戒備時,勇士們奮勇殺出,叛軍猝不及防損傷了很多人馬。
到了當年七月,叛軍再次圍城。這時士兵每日才能分到一勺米,饑了隻好吃樹皮和紙。守軍也隻剩千餘人,瘦弱得拉不開弓,而且外無救兵。叛軍了解情況後決定強攻睢陽,他們先用雲梯爬城。張巡命士兵用鉤杆將雲梯頂翻,隨即又從城上投火焚燒雲梯,這樣,叛軍用雲梯攻城就失敗了。之後,叛軍作了一番整頓,又用鉤車、木馬攻城,但當他們靠
近城牆時,又被城上投下的石塊砸得七零八落。叛軍見狀停止攻城,又圍城挖壕,壕外再加築柵欄,以作長期圍困。這時城中守軍很多因饑餓而死去,留存又大多傷殘疲憊不堪。這時,張巡殺其愛妾,煮熟犒賞將士。許遠也係其奴僮給士兵吃。城中的麻雀老鼠及鎧甲弓箭上的皮子都找來吃了,但就在這樣的情況下,張巡還對接近城牆的叛軍將領曉以忠義,勸其反正。而被張巡策反的李懷忠等許多人,都能死心塌地的幫助張巡守城。
張巡死守睢陽,前後大小戰有四百餘次,斬敵將數百名,殺賊卒十二萬人。讓叛軍受到重創,同時保障了帝國東南的安全,為大唐平定安史之亂立下奇功。