寄籍顺天府大兴县，同治六年（1867年）中举，捐兵部学习主事，在兵部任职多年。光绪二十年（1894年），出任江苏常镇通海道，任内处理泰安、江阴两教案有方，以善办外交闻名。1896年接替黄祖络任苏松道道员一职，由刘麒祥接任。光绪二十三年（1897年），被李鸿章荐为出使德国大臣、及出使和国（荷兰）、奥国（奥匈帝国）公使，任内斡旋德国驻华公使克林德被击毙一事。光绪二十七年（1901年）回国后，任工部尚书。三十一年改兵部尚书，次年任新成立的陆军部尚书。光绪三十三年（1907年），负责督办津浦铁路。光绪三十年正月二