1649年底,尚可喜派手下大将粟养志忽然出兵,在南雄大败明军,屠城后,攻陷韶州。清军倍道兼程,直扑广州。其间,英德、清远、从化等地相继失陷。1650年二月初,清军到达广州后,在白云山依山结营。坚守广州的南明将领,是从前李成栋的副手杜永和将军。
对于清军来犯,杜永和准备很充分,不仅在城周广布炮台,他还派人围城掘河三道,使河水和海水相通,只在广州城西北面留出陆地,使得广州呈易守难攻之势。尚可喜多次招降,杜永和不从。守城的南明军队誓死抵抗,广州城内人民不分男女老幼,全部加入守城战斗。见广州难以猝拨,尚可喜与耿继茂分为两部,分为两大进攻部分,准备持久围城,在打消耗战的同时,时刻寻找机会破城。他们四处抓掳百姓,强迫当地人民为清军挖壕修垒。
广州守城战,持续达十月之久。清军拼死冲锋,南明军奋死守卫,双方拉锯一样相互攻杀,士兵、平民死伤数万,加之溽暑疾疫,城内城外死尸成堆。由于广州城高壁坚,清军久攻不下。
胶着期间,把守西门的明将范承恩降清,开门纳敌,终于使南明守军前功尽弃。这位奸贼,本为淮安胥吏出身,乱世抡枪,混上个将爷当,实则无文韬,缺武略,草包一个,在军中一直为人所轻。大凡没有本事的人,自尊心还特强,对别人的评价十分敏感。一日,城中诸将为永历帝祝寿,广州主将杜永和酒喝多了些,笑骂范承恩是“草包”。就为这两个字,范承恩报复,暗中向清朝投降,广州城最终为清军所克。
范承恩不仅与清军约降开城门,他还率自己人掘开炮台之外用以作掩护的水堰,使得清军能迅速攻入战略制高点。南明军勇武非常,拼死捍卫城池。由于叛徒范承恩开西门,又有清军新调来的红夷大炮轰崩数十丈城墙,守军终于不支。经过半天肉搏之后,近万明军被杀,堕入海中淹死的明军几近两、三万人。见城已破,杜永和只得登船逃走(此人最后在琼州降清,没能善始善终)。