Après avoir été incarcéré pendant moins d'un an, la seconde guerre sino-japonaise éclate et son ancien camarade de l'académie Wang Yaowu le fait libérer sous caution et le nomme commandant de régiment. Zhang participe ainsi aux violents combats de rues de la bataille de Shanghai et de la bataille de Nankin. En 1938, il est promu commandant de brigade. Durant la sur le théâtre de Wuhan, il mène personnellement un détachement qui coupe la retraite japonaise et assure la victoire chinoise finale. En 1939, il est blessé à sa jambe gauche durant la bataille de Nanchang. Bien que son médecin lui dit qu'il doit se reposer un mois pour que sa blessure se guérisse, il repart au combat et participe à la bataille de Changsha. Sans surprise, il ne récupère pas de ses blessures et ses collègues le surnomment le « général boiteux ». Par la suite, il est promu vice-commandant de la et vice-commandant du . En 1943, Zhang mène personnellement des troupes pour soutenir les défenseurs chinois assiégés lors de la féroce bataille de Changde et force l'armée impériale japonaise à se retirer, et Tchang Kaï-chek le surnomme le « soldat modèle ». Bien qu'il échoue à sauver le général des attaques japonaises durant la en 1944, son unité se bat bien et il tente son possible. Le conseil national de guerre ne prend donc aucune sanction contre lui. Après cet épisode malheureux dans sa carrière militaire, son ancien supérieur Wang Yaowu l'aide de nouveau en l'envoyant au "United States Army War College" pour étudier, et Zhang y obtient les meilleurs notes. En , il combat sous les ordres de Wang Yaowu à la bataille de l'Ouest du Hunan et est décoré de l'ordre du Trépied sacré et la médaille de la Liberté, et He Yingqin le promut commandant du .