1920年11月,孙中山领导粤军击败盘踞在广东的桂系军阀势力,在广州重组军政府,继续进行护法运动。1921年元旦,他在军政府举行的南京临时政府成立纪念会上发表演说指出:“此次军府回府,其责任固在护法。但余观察现在大势,护法断断不能解决根本问题”,因为“护法不过矫正北洋政府之非法行为,即达目的,于中华民国亦无若何裨益。况护法乃国内一部分问题,对内承认北京政府为中央政府,对外亦不发生国际上地位之效力”,必须“建立正式政府”。4月7日,国会非常会议参众两院在广州举行联合会议,通过《中华民国政府组织大纲》,并选举孙中山为中华民国非常大总统。5月5日,孙中山就任非常大总统。
陆荣廷自桂军从广东败退回广西后,并不甘心失败,和北洋政府勾结起来,企图反攻广东。北洋政府任命陆荣廷为粤桂边防督办,为他提供进攻广东的军饷和武器弹药。4月30日,桂系陆荣廷、谭浩明、陈炳焜等发出通电,宣布了孙中山的所谓“罪状”,并要求北洋政府“明令讨伐”。5月,陆荣廷下达动员令,派桂军分兵四路进犯广东。
为继续进行护法运动和北伐,孙中山认为:“当今急务,在先灭贼而统一南方。然后乃能北向讨伐耳。”于是,他一面命令粤军“荡平群贼,扶植广西人民,使得完成自治”,一面致书北洋总统徐世昌,指出他依照袁世凯的观念和做法行事,导致毁坏法治,危害国家,要求徐“即日引退,以谢国人”。
桂系军队开始进犯后不久,孙中山即指挥粤军发起反攻,又调动江防兵舰、鱼雷艇三十余艘以及飞机队助战,并宣布悬赏缉拿为陆荣廷策反粤军的杨永泰等人。
在孙中山的亲自指挥下,粤军迅速击败桂系军队的进攻,一路高歌猛进,很快完成对广西梧州的包围。与此同时,湘军赵恒惕部、滇军李烈钧部、黔军胡瑛和谷正伦部也听从孙中山的调遣,各自派兵支援讨桂战争。桂军将领连战连败,妄图以求和的手段来阻挠粤军的进军,孙中山坚持陆荣廷等人必须“一律解兵,完全由桂民自治,始能罢兵”。广东各界在广州开国民大会,全力支援粤军讨伐桂系。
6月25日,桂军师长刘震寰受孙中山的策动,通电“独立”,与陆荣廷脱离关系,率所部步兵四营和机枪连袭击梧州。粤军全力协助,于26日顺利占领梧州。当天,广州各界3万人举行“援桂大游行”“均燃放鞭炮,至夜半犹未息”。
在胜利的鼓舞下,粤军士气高涨。孙中山立即指示各部要一鼓作气,全面消灭桂系残部。随后,讨桂军各部击败桂军的抵抗,向南宁前进。陆荣廷部将沈鸿英于7月10日在贺县宣布“自治”“脱离陆氏关系”,并敦促陆荣廷“下野”。其他桂系部将如韦荣昌、林虎、黄业兴等见大势已去,纷纷放弃抵抗,或表示愿将所部归粤军改编,或宣布“自治”。陆荣廷见众叛亲离,只得在南宁通电“下野”,率残部和家眷退往龙州。8月4日,粤军占领南宁。桂林、柳州等地也随即为粤军和湘、滇、黔各军攻占。9月底,陆荣廷逃离龙州,经越南逃往上海寓居。至此,粤军取得讨桂之战的完全胜利。
在“还政桂人”的口号下,孙中山委任广西籍的马君武为广西省长,刘震寰为广西省绥靖副主任,李宗仁为支队司令,并派粤军将领叶举率部“协同地方长官担负善后之责”。刘震寰上任后,收编了不少分散在各地的陆荣廷残部。
讨桂战争结束后,孙中山表示:“桂贼就歼,西南奠定,正宜移师北指,扫荡群魔”,以期早日“促成统一,巩固共和基础”。不久,他制定了“取道湖南、会师武汉、直捣幽燕”的北伐计划,并率部进驻广西。