單穆公逃奔了平畤城,王子朝帶領自己的兵馬占據了伊河南岸的京邑,六月二十日,單穆公于是又馬不停蹄率兵前去攻打王子朝所在的京邑,京邑的民眾紛紛逃進了北面的邙山。六月二十五日,支持單穆公的周朝公卿鞏簡公在京邑被王子朝的兵馬打敗;二十九日,同樣支持單穆公的另一位周朝公卿甘平公猛攻京邑,但還是失敗了。
劉文公伯蚠雖然接到了單穆公派人給他傳遞的消息,要他千萬不要返回王城,但他還是率領兵馬進入了王城,因為周悼王就在王城之內。劉文公在王城中加強了戒備,然后與平畤城內的單穆公聯絡,單穆公派出使者向晉國告急求援,然后派出軍隊前往王城,七月初三日,將周悼王接到了平畤城,把周天子安置在了附近的皇邑。
劉文公則返回了自己的封邑劉國,單穆公命自己的親信、周大夫王子處帶領一部分兵馬防守王城,并與百官在周平王廟內盟誓。七月十六日,忠于王子朝的周大夫鄩肸帶兵攻打皇邑,目的是搶奪周天子,現在這種混亂的局勢下,誰控制了周天子,誰就在道義上占上風,王子朝的企圖沒有得逞,鄩肸吃了敗仗,還被單穆公給俘虜了,第二天就被單穆公把他押到王城的街市之上火燒而死。
前往京師參加周景王葬禮的魯卿子叔穆伯親眼目睹了周王室的內戰,趕快返回了魯國都城曲阜,向魯昭公、季平、叔孫昭子、孟僖子等人稟告了周王室內亂的情況。魯昭公傻傻地望著大殿之上呆若木雞的群臣,口中嘟囔著說:“王室都亂了,魯國該如何是好?”
魯大夫閔馬父回稟道:“國君勿憂,王室之亂,必將平息的,晉國一定會派出大軍幫助周王室平叛的。王子朝定將失敗,他的同黨是那些喪失官職俸祿的舊官和百工,他們都是上天所廢棄之人,怎能與受到晉國大軍支持的正統王室力量抗衡?”
周王室的內戰在六月份全面爆發,單穆公的力量占據平畤城、皇邑,并且事奉周悼王居于皇邑,算是最正統的王室力量;他的同盟劉文公盤踞在自己的封地劉邑,與周天子和單穆公相呼應;王子朝的勢力占據著郊、要、餞、前城、東圉等地,雙方在隨后的幾個月里互相攻伐,已成膠著之勢。
晉國接到單穆公的告急請求后,終于在十月份派出了大軍勤王。晉卿荀躒(知文子)、大夫籍談率領晉國大軍、九州之戎以及焦、瑕、溫、原等地的兵馬,來到了周悼王和單穆公的根據地平畤、皇邑,并在十月十三日護送周悼王進入了王城。然而,王子朝的勢力并沒有因為晉國大軍的出現而崩潰,反而開始了瘋狂地反撲。十月十六日,王子朝的兵馬在郊城擊敗了單穆公、劉文公率領的軍隊;還在前城附近的社地打敗了前來勤王的陸渾戎人。
在晉軍護送下進入王城的周悼王,并沒有完全控制住王城的局勢。擁護王子朝的勢力依然強大,十一月十二日,周悼王就被王子朝的黨羽害死于王宮。晉卿荀躒、大夫籍談與周卿士單穆公、劉文公商議后,立即擁立周悼王的同母弟弟姬匄(gài)為天子,史稱周敬王。周悼王被害,也讓單穆公、劉文公和晉軍意識到,王城之內,擁護王子朝的力量不可小覷,他們把周敬王先臨時安置在其親信大夫子旅氏的府中,然后護送周敬王轉移到了狄泉城(成周)。
剽悍勇猛的晉國大軍果然不是吃素的,兩個月內,晉軍在荀躒、籍談、賈辛、司馬督的率領下,經過陰、侯氏、溪泉等邑,駐扎在社地,向王子朝盤踞的城池發起了猛烈的進攻,晉軍將領箕遺、樂征、右行率軍由西向東渡過雒水、伊水,攻占了忠于王子朝的前城;單穆公、劉文公率領的王師駐扎在京楚,十二月二十九日,晉軍與王師聯合發起攻打京邑的戰斗,毀掉了京邑城的西南部分。
魯昭公二十三年(公元前519年)正月初一,晉軍與王師又包圍了忠于王子朝的郊城。第二天,盤踞在郊城、鄩城之中、忠于王子朝的兵馬潰散出逃。正月初六,晉軍駐扎于平陰,王師駐扎于狄泉(成周,也稱澤邑)。周王室的力量,在晉軍的支持下,基本收復失地,穩住了局面。然而,此時的周敬王和卿士單穆公、劉文公卻做出了一個愚蠢的、也是幾乎致命的決定,他們認為局勢已經得到了控制,憑借周王室自己的軍隊足以戰勝王子朝的殘部,要求晉軍撤回晉國。正月九日,晉軍班師。
然而,周敬王、單穆公、劉文公低估了叛軍王子朝的力量,其實他們是無處不在的。晉軍剛撤走不久后,四月十四日,單穆公率軍攻占了訾城,劉文公則領兵拿下了叛軍占據的墻人、直人兩座城池,還算順利,但是在周朝重鎮尹邑,王師遭遇了重大挫折。
六月十二日,王子朝率叛軍從京邑進入尹邑。尹邑之中領頭支持周敬王的是劉文公的族人劉佗,被王子朝的黨羽尹文公(尹圉)于十三日誘殺。十六日,單穆公與劉文公兵分兩路進攻尹邑,單穆公兵馬先到,被叛軍擊敗;劉文公得知消息后,下令撤退。十九日,王子朝在王城內的黨羽召莊公、南宮極率領成周支持叛軍的人們來到尹邑幫助守城,叛軍在尹邑的力量得到了加強。單穆公、劉文公率領王師進攻尹邑宣告失敗。
六月二十日,單穆公、劉文公、樊頃子覺得沒有晉國大軍的保護,王城還是不安全,他們護送周敬王去了劉文公的封邑劉國。二十四日,王子朝率軍進入王城。七月九日,鄩肸之子鄩羅(王子朝死黨)護送王子朝到達周莊王廟(莊宮)即位為周天子。這時候周王室就出現了兩個周王,周敬王在劉邑,王子朝則占據王城。王子朝以正統自居,自從尹邑戰事之后,叛軍取得了明顯的攻勢,王子朝的得力干將尹辛率軍接連在唐邑、鄩邑、西闈、蒯城打敗王師,很快就占領了周王室過半的土地和城邑,呈現出一邊倒的局面。
各諸侯國看到周王室出現了兩位天子互毆的局面,而且自立為王的王子朝還占了上風,都在看晉國的態度。晉國在公元前518年(魯昭公二十四年)派大夫士彌牟前往周地考察,以了解真實民情。士彌牟在王城附近走訪了當地的百姓,發現周朝百姓普遍擁護周敬王,反對王子朝。晉頃公得到士彌牟的稟報后,決定支持周敬王。他先是命大夫趙鞅在次年(公元前517年、魯昭公二十五年)召集諸侯盟會,商議安定周王室事宜,會上達成兩項決議:第一是各諸侯國要向流亡的周敬王供應糧食;第二是次年出兵勤王,護送周敬王返回王城。
齊國沒有參加這次會議。宋卿樂大心當場表示不能為周王室提供糧食,他的意思很明白:以前我們宋國被人攻伐時,周王室又在哪里呢?這都說明周王室已經衰微,各諸侯國只是把它當作一個象征性的存在,誰還會在乎它的死活呢?另外,晉國的霸主地位搖搖欲墜,齊國領導的齊、莒、郯、徐四國聯盟根本不來參加會議,魯國由于發生了內亂也不能參加(后面詳述),因此這個會議在很大程度上是晉國自說自話,等于是給自己開的。
晉國遲遲沒有出兵,周敬王的勢力日益潰敗,他們占據的劉邑眼看也要失陷于王子朝之手。公元前516年(魯昭公二十六年)七月十七日,劉文公不得不率軍護送周敬王離開劉邑;十八日住在陽渠。王子朝命人將劉氏在王城的府邸一把火焚燒為灰燼。二十四日,劉文公護送周敬王又住在褚氏之地。二十八日,又轉移到胥靡。二十九日,周敬王進入了滑城。這種顛沛流離,其實就是逃亡。
就在周敬王走投無路之時,晉國大軍在晉卿荀躒(知文子)、趙鞅的統帥之下,終于出動,來到了滑城迎接疲憊不堪的周敬王,并派出女齊之子、晉大夫女寬率軍防守闕塞,防止王子朝兵馬的突襲。勢不可擋的晉軍于十一月十一日奪取了鞏邑,兵鋒直指王城。在晉軍的強大攻勢下,王子朝的叛軍內部也出現了松動,原來忠于王子朝的召伯盈突然反戈一擊,將王子朝趕出了王城。王子朝帶領黨羽不得不狼狽逃亡楚國,也從王城帶走了大量典藏古籍、珍玩寶器。公元前516年(魯昭公二十六年)十一月二十三日,周敬王終于在晉軍的護送下,回到了王城,重新執掌大權。晉軍則留下大夫成公般帶領一部分兵馬,協助戍守王城,其余大軍全部班師回國。
周王室的內亂終于告一段落,但是遠沒有結束。遠在楚國的王子朝,一直在謀劃東山再起,十年之后,楚國被吳國打敗,已經無力支持王子朝了,周王室則趁楚國戰亂之機,派殺手潛入楚國,刺殺了王子朝。王子朝的余黨儋翩在鄭國的支持下,再次反叛,最后周王室還是依靠晉國出兵才在公元前502年(魯定公八年)徹底平息了叛亂。
這次周王室的內亂,從公元前520年爆發,一直到公元前502年才結束,持續了十九年,是周王室歷史上最嚴重的一次動亂。晉國在霸業衰落之際,多次出動軍隊協助周王室平叛,算是尊王出力的模范了,但也沒什么作用。一個衰落的諸侯霸主扶持一個沒落的象征性符號周王室,其實沒有任何意義。
周王室之亂,也是華夏文化的一次浩劫,歷經數百年積累的周朝典籍收藏散失殆盡,老子李耳也是在這種情況之下,于魯昭公二十六年(公元前516年)無奈地離開了京師洛邑返回了陳國故里,這一年老子李耳五十七歲。