宋军部署刚完,金军船队乘着顺风,已在鼓噪渡江了。完颜亮手里挥动着小红旗,亲自指挥几百艘战船从杨林河口出发,想要一举渡过长江。起初,由于被南岸的高地遮住,金兵在船上看不见宋军,等到将近南岸,才发现高地后面宋军队伍严整,不禁大吃一惊。要想后退,由于风力很大,已经来不及了。不一会儿,驶在前面的70多只战船抵达南岸,部分金军登上岸来;金军其余的船队,也陆续经过江心驶了过来。虞允文正在前线组织宋军迎敌,看到敌军登陆,便拍着勇将时俊的背说:“你的胆量,天下闻名,这时候还立在阵后做什么?”时俊见虞允文亲临阵地,勇气倍增,就挥舞着双刀冲向金军。大队宋军跟着冲了上去,人人奋勇杀敌,登陆的金兵很快就被全部消灭了。
这时候,江面风力逐渐减弱,宋军水师开始了猛烈的反击。在海鳅船上踏车的都是初临战阵的民工。他们毫无惧色,十分勇敢。士兵和民工们都说:“我们只有齐心协力,才能消灭敌人,求得生存!”宋军海鳅船冲入金军船队,同金军展开激战。海鳅船船体大,装有踏轮,速度比较快;金军的战船船体小,速度又比较慢,大部分被宋军的海鳅船撞沉了,半渡的金兵大半死在江中。完颜亮并不甘心失败。他把其余的船只重新集结起来,准备再次发动进攻。黄昏以后,有一队宋军从别处撤退下来,路过采石,虞允文叫他们打着旗,擂起鼓,从山后绕到江边。完颜亮以为是宋军援兵来到,不敢再战,慌忙命令金军船队往后撤退,舍舟登岸。虞允文命令强弩手乘胜追射,把金军杀得大败。完颜亮率领残兵败将,仍旧退回到和州。
虞允文料到,敌人虽然遭受沉重打击,但是他们仗着人多势众,明天必将卷土重来,他和众将连夜进行战斗部署:把大部分战船开到杨林河口,封锁金军出入的水道;另派一队海船停泊在它的上游。第二天,完颜亮果然又派了大批金兵乘着船来进攻。宋军用“神臂弩”射击敌船。神臂弩是一种用扳机发射、威力强大的弓。发射的时候,先把弦张在扳机上,瞄准目标,然后扣动扳机,弦发箭出,射的又远又准。宋军扳动神臂弩,箭如飞蝗,金军船上的士兵有的应弦而倒,有的上岸逃命,又被射死在江岸的烂泥中。停泊在杨林河口上游的宋军,乘势放火,把金军300多艘战船全部烧毁。这一仗,金军在淮西的主力,基本上被歼灭了。