张镐年轻时拜名士吴兢为师,深受吴兢器重,后游历长安,以饮酒、鼓琴自娱,不善与外人交往。若有公卿邀请,他便径直前往,也仅是求醉而已。
天宝末年,杨国忠担任宰相,为提高声名,特意搜罗天下奇杰。张镐得到杨国忠的推荐,以布衣身份被拜为左拾遗。天宝十四年(755年),安禄山、史思明在范阳起兵反唐,杨国忠多次向张镐咨询军国重事。张镐举荐赞善大夫来瑱,称他可独当一面。来瑱后来果然屡破叛军。至德元年(756年),安史叛军进逼长安,唐玄宗出逃。张镐步行扈从唐玄宗,直到蜀地。同年七月,太子李亨在灵武被拥立为帝,是为唐肃宗,并尊唐玄宗为太上皇,唐玄宗便命张镐去辅佐肃宗。张镐到凤翔后,因奏议多有补益,被拜为谏议大夫。至德二年(757年),张镐拜相,担任中书侍郎、同平章事。八月,唐肃宗因张镐文武全才,又让他兼任河南节度使、都统淮南等道诸军事。当时,叛军围困睢阳,张巡告急。张镐急速赴援,并传令濠州刺史闾丘晓,让他出兵营救。闾丘晓却担心战事失败祸及自己,逗留不肯进军,坐视叛军攻城。同年十月,叛军攻陷睢阳,张巡遇害。张镐大怒,命杖杀闾丘晓。不久,两京光复,唐肃宗返回长安。张镐被加封为银青光禄大夫、南阳郡公,并镇守汴州,对叛军余孽加以招抚、征伐。十一月,张镐统帅鲁炅、来瑱、李祗、李嗣业、李奂五位节度使,收复河南、河东各郡县。
乾元元年(758年),史思明被形势所迫,上表请降。张镐担心朝廷应允,密奏道:“史思明凶残阴险,包藏祸心,与禽兽相同。我们能以计谋击败他,却难以用仁德感化。”同时又劝肃宗提防滑州防御使许叔冀的叛乱。但因他从不交结宦官,宦官都在唐肃宗面前极力称赞史思明、许叔冀的忠诚。唐肃宗遂以“不切事机”为由,罢免张镐的相位,改任他为荆州大都督府长史。乾元二年(759年),史思明再次反唐,许叔冀归降叛军。唐肃宗想起此前张镐的进言,征拜他为太子宾客,后改左散骑常侍。上元二年(761年),岐王李珍因谋逆被赐死。张镐因曾购买李珍的宅邸,也受到牵连,被贬为辰州司户。
宝应元年(762年),唐代宗继位。张镐被起复为抚州刺史,后改任洪州观察使,改封平原郡公。后来,袁晁起义,江淮震动。张镐击破叛军,斩杀舒城贼首杨昭、新安大豪沈千载,被授为江南西道观察使。广德二年(764年)九月,张镐在江南西道观察使的任上病逝。