完颜亮率兵从寿春一带渡过淮河,首先进攻庐州(合肥)。宋将王权连夜南逃,先逃到和州,又从和州逃到长江南岸,他带着将士争渡长江,全军将士淹死大半。踞守在扬州的老将刘也被迫退至镇江设防。完额亮挥军南下,直扑长江北岸。
宋高宗见势不妙,想逃往海上,宰相陈康位竭力反对。高宗不得已,命李显忠接替王权,同时派中书舍人虞允文到采石犒师。
虞允文从建康(南京)赶到采石,见王权部还剩下一万八千多残兵,士气低落。而接替王权部李显忠尚在池州,军无主帅。江北的金军正以排山倒海之势扎营在江口,渡江之战迫在眉睫。在这万分艰危之际,虞允文毅然担起接挥重任。他召集将士,晓以报国御侮的大火,将士投入战斗。
十一月八日,完颜亮指挥金兵从横江渡江,想夺取采石。虞允文指挥宋军,用事先准备好的蒙冲舰和霹雳炮对付金兵。金军兵多船小,连划桨都感到不便,遇到宋军的蒙冲舰,无法招架,损失惨重。战斗一直打到天黑,金军仍无法抢渡,只得退回江北。第二天,完额亮倾巢出动,疯狂进攻,又遭到宋军的伏兵突击,船只被焚烧三百多艘,金兵落水不计其数。完颜亮无奈,只好收拾残兵,转军瓜州。他恼羞成怒,妄图孤注一掷,遂强令金兵三日内过江,否则,兵将一律斩首。由此激起了兵变,金将射杀了完颜亮,派人到临安,和南宋讲和。