宋消灭后蜀之后,南汉屏障已失,岌岌可危。但犹临危不察,连年骚扰宋境。开宝三年(970年)九月,赵匡胤命潘美等率10州兵避开五岭(越城岭、都庞岭、萌渚岭、骑田岭、大庚岭)主要险道向贺州进军,其基本意图是:由南汉中部突入,诱歼敌军,稳定翼侧,然后东击南汉都城兴王府(今广州市)。
九月中旬,宋军越过萌渚岭直指贺州,于九月十五日将贺州包围。南汉主刘鋹派大将伍彦柔率舟师溯郁江、贺水西上北援。宋军设伏以待,大破南汉援军,并乘胜攻克贺州。此时,宋军西面的富(今广西昭平)、昭(今广西平乐西北)、桂(今广西桂林)和东面的连(今广东连县)、韶(今广东韶关西南)、英(今广东英德)、雄(今广东南雄)等州皆有南汉守军。潘美为稳定翼侧,并调动南汉主力西上,以便乘虚而击,遂扬言要沿贺水顺流东下直取兴王府。刘鋹急忙起用老将潘崇彻率兵5万进屯贺江口(今广东封开西北)。但潘崇彻进驻贺江口后,拥兵自保,观望不前。潘美见南汉军逗留不进:遂挥师西上,连克昭、桂、富等州,解除了后顾之忧。十一月迅速转向东向,攻克连州。接着乘虚东进,直逼韶州,击败南汉李承渥所率10余万兵,攻占韶州。
消息传来,南汉举国震恐。刘鋹下令增修兴王府城池,并令郭崇岳领兵6万屯马迳(今广州北),列栅守卫兴王府。此时屯驻贺江口的潘崇彻,见大势已去,率部投降。这样,宋军遂全力推进,迫近兴王府。刘鋹见形势危急,遣使向宋军求和。潘美率军疾进,于正月二十八日到达马迳,与汉军对峙。刘鋹求和之后不久即反悔,于二月初一遣其弟刘保兴率兵至马迳增援督战。二月初四夜,潘美利用火攻,大败汉军,郭崇岳死于乱兵之中,刘保兴逃归兴王府,宋军跟踪追击至城下。二月初五,刘鋹出降,宋军进占兴王府,南汉灭亡。
宋灭南汉后,据有长江上中游及下游江北地区和珠江下游地区,从战略上形成了对南唐的三面包围。南唐后主李煜为苟安求存,一面主动削去南唐国号,表示臣服;一面暗中募兵备战,以防宋军进攻。赵匡胤志在统一江南,消灭南汉以后,立即从各方面准备进攻南唐。在准备就绪之后,即遣使命李煜入朝,李煜称病固辞。开宝七年(974年)十月宋以此为借口,下令发动进攻。以曹彬为统帅,其具体部署是:曹彬率荆湖水军顺流而下,攻取池州(今安徽贵池)以东长江南岸各要点;潘美率步骑自和州与采石(今安徽马鞍山市西南)间渡江,会合曹彬东下直攻金陵;京师水军自汴水而下取道扬州入长江攻取润州(今江苏镇江);以吴越王钱俶率兵从东面攻取常州,配合宋水军夺取润州,会攻金陵;以王明率军向武昌方向进击,牵制江西唐军东下赴援。十月十八日曹彬率师沿长江顺流东下,南岸唐军以为宋军是例行巡江,未加阻击,使宋军顺利通过南唐屯兵10万的要地湖口(今江西湖口)。十月二十四日,宋军突然渡过长江,水陆并进,直趋池州。在石牌口(今安徽安庆西)把巨舰、大船连接起来,按照采石矶一带江面宽度试搭浮桥获得成功。然后继续东下,夺占采石。十一月中旬宋军将预制浮桥移至采石,潘美率宋军主力迅速跨过长江,连克金陵外围据点,并在秦淮河击败南唐水陆军10余万,形成对金陵的包围态势。