본관은 결성(結城). 장용문(張用文)의 아들이다.
홍건적이 침입하였을 때 개경을 수복한 공으로 1363년(공민왕 12) 전의주부(典儀注簿)로서 2등공신에 올랐다.
1372년 신돈(辛旽)이 제거된 뒤 이보림(李寶林) 등과 함께 간관으로 있으면서 신돈의 일당인 김문현(金文鉉)을 탄핵하였으나 뜻을 이루지 못하였다. 1378년(우왕 4) 밀직부사에 올랐으며, 1381년 가뭄이 무척 심하자 밀직제학으로서 개경 대정(大井)에 비를 빌었더니 비가 내려 포상을 받았다.
다음해 각 도의 산성순심사(山城巡審使)에 임명되었다. 1383년 한양부윤으로 있으면서 의성에서 왜구를 쳐부수기도 하였고, 몰래 숨어 들어온 왜구의 간첩 3명을 체포하는 공을 세우기도 하였다.
1388년(창왕 즉위년) 제도(諸道)의 안렴사(安廉使)를 도관찰출척사(都觀察黜陟使)로 개편하였는데, 이때 경상도도관찰출척사(慶尙道都觀察黜陟使)가 되었다. 1389년(창왕 1) 왜적의 위협에 절개를 지키고 죽은 진주(晉州)의 열녀(烈女) 최씨(崔氏)의 행실을 임금께 알려 정문(旌門)을 세우게 하였다.
이어 개경으로 돌아와 문하평리(門下評理)에 올랐다. 1390년(공양왕 2) 명나라에 몰래 숨어 들어가서 이성계(李成桂) 일파를 모함하였다는 윤이(尹彝)·이초(李初)의 사건에 연루되어 탄핵을 받고 먼곳으로 유배를 당하였다가 얼마 뒤에 풀려 나왔다.