北宋宣州宣城(今属安徽)人,字昌言。端拱进士。历利丰监判官、著作佐郎、御史台推勘官等。曾建议朝廷联潘罗支攻西夏,并自请出使。为三司户部判官。屡上书论西北边事,主张遣大臣临边。坐议天书、出外,历楚、寿、陕州。后为翰林侍读学士、群牧使,累迁给事中、知审官院,出知许州卒。