曹参军，驻江陵。550年为萧方诸中抚军外兵参军。太清二年（548年），侯景之乱爆发，颜之推被俘，因侯景行台郎中王则相救未被杀害，囚送建康。552年，侯景败死，获释还江陵。萧绎在江陵自立，承圣元年王申（552年），为散骑侍郎，奏舍人事，奉命校书。554年，西魏攻陷江陵，再次被俘，迁移长安；后出逃北齐，出逃之日，“值河水暴涨，具船将妻子来奔，经砥柱之险。”北齐宣帝天保七年（556年），在北齐任官。577年，北周兵陷晋阳，之推出任平原太守，守河津。北周大象（579年—580年）末，为御史上士。隋朝开皇中，太子杨勇