五月,北齐人征召建安公萧渊明,并谎称如果送来萧渊明,就会撤军,陈霸先不敢怠慢,命人安排船只准备将萧渊明送到北齐军中,但不巧的是,五月九日,萧渊明背上的毒疮溃烂竟然死掉了。五月十日,北齐军队从芜湖出动,朝建康杀来。五月十六日,北齐军队进入丹杨县(即丹阳县,在今安徽省当涂县东),五月二十二日,北齐军队进抵秣陵旧县(今江苏省南京市江宁区东南)。陈霸先派遣周文育率军驻扎在方山(一名天印山,在今江苏省南京市江宁区东南),徐度驻扎在马牧(即牧马场,在今江苏省南京市江宁区南),杜稜驻扎在大航(朱雀桥)以南,与北齐军相持。
五月二十七日,北齐军队在秦淮河上搭建木栅便桥,渡过了秦淮河,当晚进抵方山山下,徐嗣徽等人率领水军停泊在青墩(在今安徽省当涂县西南二十里,今名青堆沙)至七矶(确址不详,疑为在今江苏省南京市秦淮河入长江口附近)一线,切断了周文育所部的退路。周文育率部擂鼓呐喊出击,徐嗣徽等人无力制止,等到天明时,周文育率军向徐嗣徽所部发起反攻。徐嗣徽军中猛将鲍砰乘坐一条小船断后,周文育驾驶一条小舟直取鲍砰,只见他纵身一跃,跳上鲍砰的小船,一刀将其斩为两段,然后,拖着鲍砰的小船回到本阵。徐嗣徽军人见状大为惊骇,遂不敢与周文育水战,徐嗣徽将战舰留在芜湖,率领军队从陆路出击。陈霸先侯安都、徐度所部也都召回到京师。
五月二十九日,北齐军队从方山推进到倪塘(今江苏省南京市江宁区东南),侦察骑兵一直抵达到台城城下,建康震动,梁敬帝萧方智率军驻扎在长乐寺内,宣布内外戒严。
陈霸先在白城(今江苏省南京市江宁区东湖熟镇附近)抵御徐嗣徽,刚巧与周文育所部会合。双方将要交战,突然刮起了大风,陈霸先说:“兵法说大军不能逆风作战。”周文育却说:“事情危急,管不了那么多了!”说完,抽出长槊拍马朝敌人阵中杀去,士兵们也紧随其后,蜂拥而上,而不久风向也转了,梁军杀伤了数百敌人。侯安都与徐嗣徽等人在耕坛(皇帝的责任田,今江苏省南京市通济门外)交战,侯安都亲率十二名骑兵朝北齐军阵突击,一举击破敌人,生擒北齐仪同三司乞伏无劳。取胜之后,陈霸先又避实击虚,暗中从前线撤下三千精兵交给沈泰,命其偷偷渡过了长江,奔袭驻扎在瓜步(今江苏省六合县东南长江渡口)的北齐行台赵彦深,缴获了一百多艘战舰、一万斛粮食。
六月一日,北齐军队偷偷运动到钟山,侯安都与北齐将领王敬宝在钟山西麓的龙尾交战,梁军军主张篡战死。六月四日,北齐军队推进到幕府山,陈霸先派遣部将钱明率领水军从江乘(今江苏省仪征市长江南岸渡口)出击,切断北齐军队的粮道,缴获了北齐的运粮船,北齐军队军粮不足,开始杀死马匹、驴子充饥。六月七日,北齐军翻越钟山,陈霸先率领各军分别驻扎在乐游苑以东(今江苏省南京市覆舟山以南)一直到幕府山北麓,切断了北齐军进攻建康的通道。六月九日,北齐军推进到玄武湖西北,打算占领北郊坛,南梁军队也从覆舟山以东移动到北郊坛以北,与北齐军队相持。
当时,连日大雨倾盆,建康近郊平地积水一丈多深,北齐军人日夜坐在泥地之中,脚趾全被泡烂,只能把锅灶悬着才能煮饭,可是,台城以及潮沟以北却没有被水淹,地面干燥,南梁军队可以轮番休整。然而,此时的建康也非常危急,建康已如同一座孤岛一般,与外界隔绝,粮道也被北齐军队切断,城内的百姓也都逃离建康,想强行征发也没有了对象。六月十一日,天气稍稍转晴,陈霸先打算对北齐军队发起进攻,千方百计搞来些米饭分给士兵们,但士兵们仍然又饥饿又疲惫,难以战斗。正巧陈蒨从三吴地区送来三千斛大米、一千只鸭子,陈霸先立即命人煮米宰鸭,全军将士都能分得一份荷叶煲饭,数片鸭肉。第二天天还未亮,陈霸先命令部队饱餐战饭,即率军从幕府山出击。侯安都对部将萧摩诃说:“你骁勇之名闻于天下,百闻不如一见。”萧摩诃回答:“那今日就让大人您见识一下!”两军将要交战,侯安都却突然摔下马来,北齐军队一下子就扑了上来。萧摩诃大喊一声,单身匹马朝齐军杀来,齐军无不闻风丧胆,吓得四散奔逃,侯安都才逃过一劫。陈霸先与吴明彻、沈泰等人一齐朝北齐军杀来,双方纵兵大战,正在难分难解之际,侯安都率军又从白下(今江苏省南京市北)朝北齐军背后杀来,顿时北齐军大败,梁军一直追杀到临沂(侨郡,在今江苏省句容县北)。此战梁军共斩杀了齐军数千人,生擒徐嗣徽及其弟弟徐嗣宗,斩首示众,齐军士兵相互践踏而死的数不胜数。紧接着,梁军乘胜收复了江乘、摄山(即栖霞山)、钟山等地,生擒萧轨、东方老、王敬宝等四十六名北齐将帅。北齐军士侥幸逃到长江岸边的,用狄草编成木筏过江,好不容易划到江心,木筏就解体了,人落入水中淹死,尸体漂流到下游的京口,密密麻麻地布满了江岸,此战,北齐将领任约、王僧愔二人侥幸逃出一命。
六月十四日,大胜后的各路梁军又来到南州,焚烧了北齐的战舰。六月十五日,南梁宣布大赦。十六日,解除戒严状态。官兵们把赏赐给的财物拿去换酒,才够一人喝醉。十七日,南梁朝廷诛杀了北齐将领萧轨等人,北齐人听说后,也杀死了作为人质的陈昙朗。陈霸先为了报答侯安都,上书梁敬帝,将自己兼任的南徐州刺史一职让给了侯安都。