完颜亮发动非正义的侵宋战争,遭到金统治区各族人民的强烈反对。金宗室完颜雍乘机夺取政权,黄河以北地区很快归附新皇帝金世宗。完颜亮得到知这一消息更加疯狂南侵。当时,他领兵驻扎在和州鸡笼山,决定于十一月初八日从采石(今安徽当涂北)渡江,再攻建康。虞允文是个书生,从来没有指挥过战争。但是爱国的责任心使他鼓起勇气。他立刻命令步兵、骑兵都整好队伍,沿江布阵,又把江面的宋军船只分为五队,一队在江中,两队停泊在东西两侧岸边,另外两队掩匿山后。敌军以为采石无兵,及近南岸,见宋军列阵相待,当涂人民观战助威者十数里不绝,方才大惊,欲退不能,只得前进。几百艘金军大船迎着江风,满载着金兵向南岸驶来。没有多少时间,金兵已经陆续登岸。虞允文命令部将时俊率领步兵出击。时俊挥舞着双刀,带头冲向敌阵。兵士们士气高涨,拼命冲杀。金兵进军以来,从没有遭到过抵抗,一下子碰到这样强大的敌手,就都垮下来了。江面上的宋军战船,也向金军的大船冲去。
宋水军多踏车海鳅船,大而灵活,而金军船只底平面积小,极不稳便,宋船乘势冲击,就像尖利的钢刀一样,插进金军的船队,把敌船拦腰截断。敌船纷纷被撞沉。敌军一半落在水里淹死, 一半还在顽抗。太阳下山了,天色暗了下来,江面上的战斗还没有结束。这时候,正好有一批从光州 (今河南潢州)逃回来的宋兵到了采石。虞允文要他们整好队伍,发给他们许多战旗和军鼓,从山后面摇动旗帜,敲着鼓绕到江边来。江上的金兵听到南岸鼓声震天,看到山后无数旗帜在晃动,以为是宋军大批援兵到来,纷纷逃命。金军遭到意料不到的惨败,气得完颜亮暴跳如雷,将怒气全发泄在士兵身上,勒令第二天强渡长江,完不成任务者军法从事。次日,虞允文又派新盛率水军主动进攻长江北岸的杨林渡口。金船出港,宋军用强弩劲射,又使用霹雳炮轰击,又大败金军。完颜亮见渡江失败,只得退回和州,接着逃往扬州。
宋军在采石大胜之后,主将李显忠才带兵到达。李显忠了解到虞允文指挥作战的情况, 十分钦佩。 虞允文对李显忠说:“敌人在采石失败之后,一定会到扬州去渡江。对岸镇江那边没准备,情况很危险。您在这儿守着,我到那边去看看。” 李显忠马上拨给虞允文一支人马,由虞允文率领前往镇江。 镇江原来是由老将刘锜防守。那时候,刘锜已经病得不能起床了。虞允文到了镇江,先去探望刘锜。刘锜躺在床上,紧紧拉着虞允文的手,心情沉重地说:“国家养兵三十年,没有立过一点战功,想不到立大功的还是靠您这位书生,我们当将军的实在太惭愧了。” 虞允文安慰他一阵,就回到军营。他命令水军在江边演习。宋军制造了一批车船,由兵士驾驶,在江边的金山周围巡逻。金兵打了几次败仗,都害怕作战。有些将士暗地里商量逃走。完颜亮在进退无路的条件下,孤注一掷,命令金军三天内全部渡江南侵,否则一津处死。隔岸的宋军刚打了胜仗,士气商涨,严阵以待,金军强渡无望,而完颜亮一贯用法苛严,使金军将士进退两难。他们得知完颜雍已在辽阳称帝,并废完颜亮为庶人,便也思变,于27日清晨完颜元宜率军杀死完颜亮。十二月初,金军退走,宋军乘机收复两淮地区。之后,金世宗为了稳定内部,派人到南宋议和,宋金战争又暂时停了下来。