He hailed from Hedong 河東 (modern Linfen 臨汾, Shanxi) and later moved to Maoling 茂陵 (modern Xingping 興平, Shaanxi). In his younger years he was a clerk (zushi 卒史) in the office of the local governor (taishou 太守) and soon raised to the position of granary overseer and aide of the Chamberlain for the Imperial Stud (taipu cheng 太僕丞) Du Yannian 杜延年. Zhang Chang belonged to the many officials that remonstrated against the immoral behavior of Liu He 劉賀, successor to Emperor Zhao 漢昭帝 (r. 87-74 BCE), and was therefore after the overthrow of Liu He rewarded by Emperor Xuan 漢宣帝 (r. 74-49 BCE) with the office of regional inspector (cishi 刺史) of Yuzhou 豫州. His serious fulfilment of his duties brought him the title of Superior grand master of the palace (taizhong dafu 太中大夫).
Zhang Chang, together with Yu Dingguo 于定國, the highest official in the Imperial Secretariat (shangshusheng 尚書省). When he criticised the powerful general-in-chief Huo Guang 霍光 he was transferred to the post of commandant (duwei 都尉) of the Hanguan Pass 函谷關, later to that of governor of Shanyang 山陽. When a rebellion broke out in Jiaodong 膠東, Zhang Chang asked to be permitted to put down the uprising and was appointed administrator (xiang 相) of the princedom of Jiaodong. His method to pacify the rebellion was to offer them exemption from punishment if they surrendered.
In 61 BCE he was appointed metropolitan magistrate (jingzhao yin 京兆尹), a position that he filled with the utmost sincerity and appropriateness in the Confucian sense. Yet he was demoted because of a his friendship with Yang Yun 楊惲 who was executed for rebellion. After some time he was again appointed to high state offices, namely regional inspector or Jizhou 冀州 and then governor of Taiyuan 太原.