1947年1月末,蒋介石决定集中大军进攻华东解放区。南线方面,由整编第19军军长欧震指挥,兵力庞大的8个整编师和21个旅,分成三路从台儿庄、新安镇和城头一线出发,沿沂河和沭河向临沂推进;北线则由第2绥靖区副司令官李仙洲指挥,带领第46、第73和第12三个军,从淄川、博山和明水方向南下莱芜,企图南北夹击,逼迫华东野战军在临沂展开决战。
经过分析,陈毅和粟裕认为南线敌军兵力强大,且阵型紧密,难以轻易分散。而北线的李仙洲兵力较为薄弱,且因陈诚的催促,急于南下,形势对我方较有利。于是,他们决定调动部分兵力牵制南线的欧震主力,主力则秘密向北移动,计划围歼李仙洲。当时,王必成的第6师已经改编为第6纵,辖16、17、18三个师。2月10日,王必成和政委江渭清接到粟裕的紧急命令,要在16日前赶到羊流店地区。6纵与羊流店的距离足足有200公里,由于要保密行军,避免敌机侦察,部队只能在夜间行进,这使得任务十分艰巨。尽管如此,王必成和江渭清并没有提出任何条件。自从二保涟水失利后,6纵上下都憋足了劲,要趁此机会打一场翻身仗。接到命令后,王必成和江渭清立刻带队出发,一路上没有耽搁,遇到饥饿就吃煎饼,口渴就喝冰水,凭借顽强意志,在6个夜晚内成功行进了200公里,准时到达羊流店。 到了羊流店后,新一轮作战命令下达,要求6纵全力攻占吐丝口和青石桥的敌人,切断李仙洲的退路。守卫吐丝口和青石桥的是国民党新编第36师。尽管6纵在兵力上占有优势,但敌人在吐丝口构筑了密集的堡垒,而且补给充足,因此战斗异常艰难。2月20日,华东野战军向李仙洲的部队发起了全线进攻,王必成也指挥6纵向敌军发起进攻。在一夜激战中,6纵成功控制了吐丝口的大部分街区。第二天,敌机支援赶到,6纵在保持一个团防守已占领的区域后,其他部队全力撤出,准备应对空中打击。21日晚,王必成指挥6纵再次发动进攻,投入了6个团的兵力,经过一夜的连续作战,成功控制了吐丝口的几乎所有地区,剩余敌人被压缩到东北角落。 22日天亮后,李仙洲接到王耀武命令,带领部队撤离莱芜城,朝吐丝口方向突围。同日中午,王必成接到华野的指示,要在进攻吐丝口的同时,派出兵力阻止敌军从莱芜撤退。 此时6纵面临艰巨的任务,不仅要进攻敌人,还要分兵截击敌军的逃亡路线。经过商议,王必成决定让16师和17师继续进攻吐丝口的敌人,18师则向吐丝口以南设伏,防止敌军从莱芜逃出。23日上午,李仙洲带领第73军和第46军从莱芜出发,试图突进吐丝口,结果遭到6纵18师的迎头痛击。此时,46军的军长韩练成由于指挥混乱,脱离了部队,使得46军陷入更大的混乱中。此后,华东野战军的1纵、4纵、7纵和8纵等部队迅速赶到,将李仙洲的部队包围。经过一天激战,李仙洲集团的主力大部被歼灭,李仙洲本人也被俘虏。剩余约1000名敌人,在73军军长韩浚的带领下向吐丝口撤退,并与新编第36师的残部会合,企图逃往博山,但在青石关地区被9纵全歼。至此,莱芜战役以华东野战军的全胜而告终。华东野战军在这场战役中付出了8800多人的伤亡,歼敌57000余人,俘虏40000多人。6纵不仅承担了攻坚和堵截的双重任务,还抓获了约20000名俘虏。这场大胜极大提升了6纵的士气。 战斗结束当天,王必成和江渭清围坐在火盆旁,时任华东野战军副政委的谭震林突然到来,提出要从6纵抓走一万名俘虏。王必成沉默不语,江渭清马上意识到王必成心中仍有不满。原来,在1946年12月3日的第二次涟水战役中,谭震林负责指挥防守,但由于指挥不当,导致王必成的6师被敌人猛烈攻击,最终涟水失守。虽然王必成曾三次提出加强涟西的防守,以防敌军偷袭,但谭震林并未采纳。等到敌人从涟西发起突袭时,局势已经无法挽回。事后,谭震林将失利的责任归咎于6师,并要求撤掉王必成的职务。江渭清得知这一情况后,立即赶往陈毅那里解释此事,陈毅了解真相后,取消了撤职决定。王必成心中的不满一直未消除,直到谭震林在祝捷大会上公开检讨,诚恳地向全体官兵道歉,才化解了这段心结。谭震林在讲话中表示:涟水战役失利,不是6纵作战不力,而是我指挥不力,我在此向6纵的全体战士赔礼道歉。这一番话赢得了6纵全体官兵的热烈掌声,王必成也放下了心中的怨气。会后,江渭清与谭震林商量调动俘虏的事,王必成答应:给谭政委一万人,二一添作五。此后,6纵士气高涨,迅速成为华东野战军的重要主力。