公孙衍,魏之阴晋人。曾仕魏,任犀首②,人因以犀首称之,好像这就是他的其实姓名。《史记集解》引司马彪曰:“犀首,魏官名,今虎牙将军。”犀首当是武职。
公孙衍于秦惠文王五年(公元前333年)在秦,为大良造,后居魏。楚使者陈轸,也是一个纵横家,他过魏,献计于衍。他说“魏相田需约诸侯纵亲,楚王疑而未信。如果您请于魏王,说您与燕赵之王有交情,多次有使者来邀请相见。魏王如答应了您,给您车子,你也不必多要,有三十辆乘就可以了。您把车子陈列在庭中,公开宣称,要到燕国和赵国去。”公孙衍照办了,燕赵之王派使者迎公孙衍到他们的国中,楚王听说,大怒,以为田需欺负他,就全不听从田需的话了。齐国听说公孙衍要到燕赵去,也派人以国事相托。于是,公孙衍行三国相事,有了相当大的权力。
公孙衍主张合纵,张仪宣扬连横。他们在政治上和私人关系上都是对手。公元前322年(秦惠文王更元三年),张仪相魏。公孙衍设法取得韩国当权的支持,破坏了张仪联合秦魏的政策。公元前319年,张仪被迫去魏,公孙衍代张仪为魏相。公元前318年,魏、赵、韩、燕、楚合纵攻秦。这次进攻,没有取胜,军至函谷关而还。但这次进攻,还是一次有名的对秦的进攻。
西戎义渠跟魏有往来。有一次,义渠君朝魏。公孙衍就趁这个机会,劝告义渠君加强对秦的警惕。他说,如中原无事,秦就要对你们烧杀掠夺;如果中原有事,秦将轻使重币去同你们交好。后来,五国攻秦。恰巧这个时候,秦以文绣千纯,美女百人,遗义渠君。义渠君集合群臣议论这件事。义渠君说,这就是公孙衍当年所说的那话了。于是起兵袭秦,大败秦人。
《史记》称公孙衍于张仪死后,“入相秦,尝佩五国相印,为约长”。此所谓五国约长,似即指公元前318年五国攻秦之事。
《孟子·滕文公下》记景春的诸说:“公孙衍张仪,岂不诚大丈夫哉!一怒而诸侯惧,安居而天下熄。”公孙衍在当时一些人的心目中是与张仪齐名的,但传下来的事迹不多。《史记》有公孙衍传,系附于张仪传。《战国策》也只有几条零星的记载。
《汉书·艺文志》纵横家,有《苏子三十一篇》,《张子十篇》,是关于苏秦、张仪的专书,不知是否他二人的作品,均已久佚。关于公孙衍的专书,未见著录。《汉书·艺文志》纵横家还著录有西汉的蒯通、邹阳、主父偃、徐乐等人的书,可见西汉前期,纵横家之风犹有存者,但比起战国时期的纵横家,当有巨大的不同。