士，同年五月，着分部学习。历任刑部主事、员外郎、郎中、江西广信、南昌知府、总理各国事务衙门章京、安徽提学使，署布政使。光绪二十一年（1895年），与康有为、梁启超等主张维新变法，成立强学会。光绪二十四年（1898年），丁忧离职，应张之洞之聘，于武昌两湖书院主讲史学。光绪二十六年（1900年），庚子事变爆发，与李鸿章、张之洞、刘坤一谋东南互保。光绪二十八年（1902年），应盛宣怀聘，任上海南洋公学 (今上海交通大学) 监督。宣统二年（1910年），因病乞休。辛亥革命后，以遗老自居，归隐上海，号其楼为海