道光二十九年（1849年）举人。咸丰年间历任合肥知县、同知、宿州知州。咸丰、同治年间，长期在安徽、河南各地镇压太平天国运动和东西捻军，先后得赐号“格洪额”、“达春”巴图鲁。同治二年（1863年）攻陷捻军驻地雉河集（在今安徽涡阳），俘获捻军领袖张乐行，授知府。又参与剿灭苗沛霖之役。同治三年（1864年）攻太平军陈得才部，招降马融和，升安徽按察使、布政使。同治六年（1867年）升任安徽巡抚。同治十三年（1874年）10月17日接替瑞麟担任两广总督，期间张兆栋曾暂时署任代理。捕杀太平天国辅王杨辅清，加太子少保，