七年（1247年）中进士，调常熟尉。调任婺州（治今浙江省金华市）推官，辟差平江府（治今江苏省苏州市）百万仓检察，监江淮茶盐所芜湖局。景定元年（1260年），知嘉定县。后来签书临安府（今杭州市）判官。主管城南厢，听讼严明，自持廉正，不畏强权，平反冤狱。都城火灾，瓦砾充斥，派民船运送。一百多家在籍者被宦官庇护，不应役，他严加追究，惩罚不服役者，于是无不听命。力拒户部科买，添差通判临安。改知广德军，拜监察御史，上奏知无不言，忤逆贾似道，触怒宋度宗。改任司农卿，为两浙转运使。修筑3600多丈的海晏塘。转任户部侍郎，