西汉梁国成安(今河南临汝)人,字长孺。初为梁孝王中大夫。吴楚七国之乱时,击退吴兵,由此著名。武帝时,任御史大夫,后为卫尉。元朔元年(前128),匈奴大举进攻,他任材官将军,屯兵渔阳,兵败,徙屯右北平。次年病死。