西晋攻打东吴，孙皓派张悌、沈莹、孙震率三万兵迎战晋军。沈莹料定长江上游的荆州必将失守，建议张悌固守牛渚（今安徽省当涂县北），张悌不听决定渡长江，到北岸和晋军决战。晋军至长江北岸，沈莹率丹阳精兵五千，号「青巾兵」，三度出击晋军，不能击败。吴军陷入苦战，晋朝降兵在后方造反，吴军大乱。晋军发动攻势，吴军大败。沈莹、张悌都被晋军俘虏、斩首。
着作.沈莹着有《临海水土异物志》。同书中记载的「夷州」，部分学者认为是台湾，是记载台湾最古老的文献之一，但现多数史学者对此有所质疑。Secti