孫中山的護法號召,首選得到海軍的積極響應。7月12日,前北京政府海軍部長程壁光發表了擁護護法的宣言,宣告海軍獨立,隨後率海軍第一艦隊開赴廣東。這時候,150多國會議員也從北京南下到了廣州參加護法運動。因為不足法定人數,孫中山就采用了“非常國會”的名稱召開會議。會議通過了《中華民國軍政府組織大綱》,大綱規定:軍政府的目的是“勘定叛亂,恢複臨時約法。”9月1日“非常國會”選舉孫中山為大元帥,唐繼堯和陸榮廷為元帥,成立軍政府,與北京段祺瑞政府相對立。10日,孫中山宣誓就職,表示要盡力攘除段祺瑞等民國叛逆,恢複《臨時約法》,隨後孫中山以大元帥名義下令北上討伐段祺瑞,北伐軍迅速組成。維護《臨時約法》、恢複國會的護法戰爭就此爆發。
陸榮廷和唐繼堯作為獨霸一方的軍閥,早就對段祺瑞武力統一全國,限製他們的擴張,大權獨攬的行為極為不滿。那個時候南方軍閥和北方軍閥早已對立。現在,孫中山發起護法戰爭,他們響應參加,目的隻是為了保住和擴大自己的地盤,便於和段祺瑞討價還價。孫中山為了爭取他們的支持,一再向他們讓步,加上段祺瑞那頭劍拔弩張威脅以武力解決,陸榮廷和唐繼堯才決定參加護法戰爭,但極為勉強。
段祺瑞聽得孫中山發動護法戰爭的消息後,立即下令通緝他,並打算立即派軍隊從湖南方麵向兩廣進攻。但是長江中下遊各省是馮國璋直係軍閥的勢力範圍。北洋軍由湖南向南打,勢必會擴大直係的地盤。直係很可能會和南方軍閥聯合起來對付皖係,段祺瑞為此左右為難。最後,他決定派他的親信傅良佐為湖南督軍,帶領軍隊到長沙把原來的省長兼督軍譚延闓本來就傾向桂係軍閥陸榮廷,這時他立即向陸榮廷、唐繼堯通電,請求派軍援助,自己也化裝出了湖南。湖南地方勢力首領林修梅、劉建藩順勢宣布“自主”,但是他們的軍隊力量不強。
陸榮廷看到湖南力量無法抵抗北洋軍的進攻,他一改開始時的被動態度,緊急召開南寧會議。提出恢複國會、迎接黎元洪再當總統、罷免段祺瑞、撤回傅良佐等四項主張,推舉廣西督軍譚浩明為護法軍總司令,誓師增援湖南。孫中山很高興,立即組織湘、粵、桂護法聯軍,抵抗北洋軍。
不料,北洋軍內部卻起了內訌。直係的王汝賢、範國璋兩個師不願為段祺瑞出力,作戰非常消極。在衡陽、寶慶等地和護法軍打了幾個小仗後,王汝賢、範國璋便發表通電,說他們不願打內戰,主張“和平解決”。段祺瑞派去的湖南督軍傅良佐見勢不妙,抽身逃走了。這時湖南人民也自動聯合起來驅趕北洋軍,護法軍乘勢向北推進。護法戰爭旗開得勝。
湖南失敗的消息傳來,段祺瑞又急又氣。不得不“引咎”辭職,暗地裏卻鼓動部下反對馮國璋,馮國璋接受了段祺瑞的辭呈,任命傾向直係的王士珍為總理,組成新內閣。這時桂係軍閥分別控製了湘川兩省後,私利有所滿足,便與直係軍閥實行妥協,他們不顧孫中山的反對,通電主和。次年2月中旬,他們又與北京政府達成協議,停戰兩周,使北洋軍閥獲得喘息的機會。
1918年3月,由段祺瑞主持著,製造了一個新的“國會”。馮國璋被迫辭職。接著,段係國會選出了清朝老官僚徐世昌為總統,實權則一直在段祺瑞手裏。
與此同時,直係為避免孤立,早就和南方軍閥勾搭起來,親如兄弟。南方軍閥從此不提討伐之事。不僅如此,他們還夥同一批政客分裂護法軍政府,排斥孫中山。他們不但不實行孫中山的革命主張,而且還有意排擠孫中山的勢力,不讓孫中山掌握武裝。擁護孫中山的海軍總長程璧光在廣州被暗殺,孫中山直屬的警衛部隊官兵也常常被人暗中捕殺。孫中山領導的軍政府的經費、兵員都遇到困難,軍政府大權完全操在掌握軍隊的陸榮廷和唐繼堯手裏。1918年5月,陸榮廷、唐繼堯操縱的非常國會作出決定,準備取消大元帥一長製,改為七總裁合議製,並由老官僚岑春煊擔任主席總裁,隻讓孫中山當七總裁之一。孫中山痛切地認識到依靠軍閥是不可能達到護法的目的,於是便於5月4日憤而辭職。他在辭職通電中說:“我國最大的禍害是軍閥們爭權奪利,南與北如一丘之貉,沒有什麼差別。”
辭職後的孫中山很快便離開廣州,到了上海。孫中山一離廣州,南北軍閥便進行了和平談判。護法運動在南北軍閥的破壞下失敗了。中國政局仍然在各派軍閥的紛爭中動蕩不安。
護法運動是辛亥革命後資產階級反對專製主義鬥爭的繼續,具有積極意義。但它僅僅是為了恢複《臨時約法》和國會,而所依靠的又是沒有護法誠意的西南軍閥,和毫無群眾基礎並為政學係所控製的國會,使護法運動限於少數勢力範圍之內。因此,其最終失敗是必然的。