茂县凤仪镇水西村人。1935年5月参加红军,任31军93师测绘班长。1937年加入中国共产党。
长征期间,参加了红四军向南突围的多次战斗,后进入红大特科测绘班学习,任师部测绘班班长,为师部北上提供了重要的测绘情报。1937年春,所在部队回师甘肃参加营救被“马家军”围困的西路红军,9月他任八路军129师386旅772团团部见习参谋,10月参加伏击日军的娘子关、新旧关、长生口等战斗,接着又参加了东石门、马山村、长乐村、神头岭、响堂铺和白晋线战斗。之后随部队到太行山建立抗日根据地。1938年5月因出色绘制演习要图,被李达看中,调129师司令部任二科侦察参谋,后又任师部作战科地图文印股股长。1939年根据刘伯承师长、邓小平政委、李达参谋长的指示,他带领测绘小分队爬遍太行山,历经近一年时间,把晋察冀三省交界处五万分之一地图测绘出来,刘伯承表扬他“不愧为红大毕业生”,在师直机关建党十九周年大会上被授予“模范共产党员”称号。
1942年他任师部通讯队队长兼支部书记,带队参加了路罗川伏击战。在日军清剿太行山时,与师部管理科长周键一起带领精干警卫,完成了秘密护送刘伯承突围日军合围圈任务,受到党中央通令嘉奖。1944年任师直机关整风队党支部书记,他带领一个班经一年时间,开辟了新乡地区根据地,建立了当地中心县委、各区政府和地方游击队。1945年日军投降后,他受李达司令员指示,将原游击区的队伍组编成军分区第44团,他兼任代团长。之后率团参加了著名的邯郸战役。1946年9月,被派往高树勋起义部队任军代表,后任第十纵队28旅83团团长。1948年1月任桐柏军区第二军分区参谋长,随后带部队参加襄樊战役。1949年3月,调任第二野战军司令部军政处副处长,参加渡江战役,部队进驻南京后,奉命接管国民党国防系统。9月,随军挺进大西南。12月参加重庆市军事接管工作。
1950年1月,进军西藏,任支援进军康藏司令部参谋长,从事解放康藏物资筹运、公路、机场等后勤保障工作。1951年1月昌都解放后,任18军副参谋长。1952年兼任康藏(川藏)筑路工程司令部参谋长。1955年8月调北京总后勤学院基本系第一期高级班学习。1958年8月任西藏军区后勤部部长,1959年6月任西藏军区副参谋长,参加平叛工作。
三年困难时期,任北京高等军事学院院务部副部长,兼任军以上干部军事理论班副主任(准军级),负责学院生活保障。文革期间,调北京市人委任副秘书长兼办公厅主任,协助万里接待“红卫兵”,后万里被抓,他也受造反派冲击,但他设法与周恩来办公取得联系,按总理指示保住了北京市人委的印章和档案,转移并保护了万里的母亲和家中文件。1969年秋调回高等军事学院。1971年调成都军区后勤部任副部长。 1983年4月当选四川省六届人大代表、人大常委会常委、民族委员会委员。
1955年5月,被授予陆军大校军衔。荣获中华人民共和国三级八一勋章、二级独立自由勋章、二级解放勋章。1988年7月荣获二级红星功勋荣誉章。
1983年8月,经中央军委批准按副兵团职待遇离休。1996年8月逝世。