1903年考中秀才,后考入保定警務學校法科,畢業后在察哈爾省都統衙門供職,還先後任過察哈爾省實業學校董事,張北縣參議會參議員等職。曾參加了孫中山創建日同盟會,並同張礪生等發動了著名的豐鎮起義,以響應辛亥革命。
抗戰爆發后,在馮玉祥部隊任師長。察哈爾民眾抗日同盟軍在
張家口成立后,任張礪生所轄的第一師師長,參加了收復
多倫的戰鬥。1936年返鄉后,在家鄉點燃了抗日救國活動,在13 個村成立了抗日聯庄會,即“旗地十三村抗日聯庄會,”從此名望大增。
1945年11月8 日,張子光當選為察哈爾省人民政府委員。張家口第二次解放后,任察哈爾省民政廳廳長。於1950年逝世,終年72歲。