张巡是开元末进士,由太子通事舍人,出任清河县令,博览群书,通晓战法,重义气,尚气节,为县令时颇有政声。
安禄山叛变后,天宝十五年(756)一月,叛军张通晤攻陷宋、曹等州(今豫、皖、鲁三省接境地域),谯郡太守杨万石降敌,强令张巡以长吏西迎安禄山叛军。张巡拒不受命,起兵讨叛,响应者约千余人。与此同时,单父(山东单县)县尉贾贲,亦起兵讨叛,进攻宋州。张通晤逃襄邑(河南睢县),被顿丘(河南清丰)令卢杗所杀。张巡遂与贾贲合兵,同去雍丘。总兵力约二千余人。此时雍丘令令狐潮以县降敌,奉命东去襄邑支援叛军,所俘淮阳兵百余人,拘于雍丘,令狐潮乘外出之机,杀看守,迎张巡、贾贲等进入雍丘城。令狐潮调动叛军四万余人围攻雍丘。贾贲出战,败死,张巡力战,击退叛军,遂兼领贾贲所部。不久,令狐潮复率叛军四万人攻雍丘,张巡乃留千人守城,自率千人,分数队,开城出击。张巡身先士卒,直冲敌阵,叛军以事出突然,人仰马翻,遂败退而去。次日,叛军复设百炮,环城攻打,城上楼堞皆毁。张巡令守军在城上立栅柜守。叛军缘城而上时,张巡令士卒束篙草灌油脂,点燃下投,叛军无法登城。他还不时出兵袭击,并利用夜暗令守军缒城袭击敌营等,以扰乱敌军,挫其士气。
当叛军载米、盐之船数百只,抵雍丘城外时,张巡令一部兵力潜出河滨,夺获其盐、粮千余斛,焚余船后归还。守军箭尽,张巡令部众扎草人千余,着以军服,夜间缒城。叛军以为守军出击,万弓齐射,因而获得大量箭矢。几次以后,叛军发觉是计,不再射箭。张巡又选敢死队千人缒城杀入令狐潮营,焚其营房。令狐军大溃。张军追杀十余里。以后,叛军再度围城,雍丘粮、水均已缺乏,张巡以诈降欺骗叛军,要求安军撤退六十里。张巡乘叛军后撤之机,率军出城,扒掉城关所有房屋,取回木料后重入城内加强守备。令狐潮大怒,再度合围雍丘城,张巡复以计对令狐潮说:“君须此城,归马三十匹,我得马且出奔,请君取城以藉口”,令信以为真,果然送了三十匹马,张巡以此分配给各骁将,并商定当叛军来时,每人要捉具一将。次日,令狐潮来责问张巡失信,张答以“吾欲去,将士不从,奈何?”令孤潮怒而攻城,阵尚未布好,张巡骑将三十人冲杀而出,擒叛军十四人,斩杀百余人,俘器械牛马甚多。令狐潮退据陈留(河南开封东南),不敢再犯雍丘。此次战役,叛军围雍丘近四月,兵力达数万人,而张巡军仅二千余人,始终拒守,每战常胜。
令狐潮攻雍丘,数月不能克,乃筑城于雍丘之北,绝张巡军粮道,叛将杨朝宗率马步二万,将袭宁陵以断巡军之后。张巡遂舍雍丘,东向守宁陵,并与睢阳太守许远部会合,在宁陵西北,大败杨军,斩敌万余人,残部退走。张巡升江南节度副使。至德二年(757)安庆绪以尹子锜为汴州刺使、河南节度使,率同罗、突厥、奚等少数民族兵并会合杨朝宗部共十余万人,来攻睢阳。许远告急于张巡,张自宁陵引兵三千入睢阳与许远共同防守,城内兵力总计约七千人。安军集中力量,攻城,张巡督励将士,昼夜苦战,有时一日进行二十余次战斗。许远推崇张巡为主将,专任第一线战斗指挥;许远负责粮、械供应,并居中接应。
尹子锜军久围睢阳不下,但城中已将食尽。每人口粮日仅一合,掺以树皮而食,外无支援,将士饥疲不堪。战至八月,睢阳守军仅余六百余人,张巡与许远分区防守,与士卒同甘苦,仍坚守不懈。时谯郡、彭城(江苏徐州)、临淮(江苏盱眙)均有唐将,但皆拥兵不救,因而尹军攻城更急。十月,睢阳食尽,马、雀、鼠等一切可以入口的东西均已网罗食完,敌军登城,将兵无力再战,城遂陷。但张巡固守睢阳达十月之久,前后大小战斗凡四百余次,累计斩杀敌军约十二万人,成为我国历史上有名的守城战役之一。张巡及部众均在城破后,被俘不屈而死。