四王之乱指魏王田悦、赵王王武俊、齐王李纳、冀王朱滔,推朱滔为盟主,拥李希烈为天下都元帅,反叛朝廷的祸乱。此叛乱源于安史之乱后的藩镇割据。
安史之乱平定后,代宗皇帝大赦天下,对安禄山、史思明的旧将、亲族不仅不追究责任,而且任其为御民之官,安史旧将变为节度使,成为新的藩镇。安史旧将恒阳节度使张忠志见史朝义日暮穷途,举赵、恒、深、定、易五州之地归降朝廷,代宗任命他为成德节度使,治恒州(今河北正定),仍统治上述五州,并改姓李, 名宝臣。接着又以邺郡节度使薛嵩为昭仪节度使,统辖相、卫、 邢、(名、贝、磁六州,治邺郡(今河北临漳);睢阳节度使田承嗣为魏博节度使,统辖魏、博、德、沧、瀛五州,治魏州(今河北大名东);范阳节度使李怀仙为卢龙节度使,治幽州(即范阳,今北京市)。薛嵩死后,昭仪节度使的地盘被田承嗣占据相、卫等四州, 邢、磁二州及临洺县归朝廷。成德、魏博、卢龙三节度使是代宗以后持续最长、危害最大的割据势力,被称作河朔三镇。这三镇的大体布局是:卢龙在北,统辖冀北与辽西一带;魏博在南,统辖冀、鲁、豫交接地区;成德在中,统辖河北省的中南部。河朔三镇自建立以来收集安、史余党,各拥劲卒数万,表面上尊朝廷,实际上自搞一套,自己任命官吏,赋税不交中央,征调他们的军队, 还要由朝廷支出军饷费。除河朔三镇以外,还有些节度使与河朔三镇相呼应,阳奉阴违,对抗朝廷,尤以淄青镇、淮西镇最出名。淄青镇节度使李正己因军功升任,本有淄青十州之地,大致相当于今鲁中、鲁东北一带,但他非良善守道之人,与淮西节度使李忠臣瓜分汴宋节度使李灵曜的地盘,又占有了曹、濮、兖、徐、郓五州,即占据了鲁西南,将治所移至郓州(今山东东平西北),将淄青改为平卢,拥兵10万,占据齐鲁大地,雄据东方,成为东方最大的藩镇。
叛乱的起因是藩镇争节度使世袭制,李宝臣、李正己、田承嗣等人曾商量,要在各镇确立传子制度,大历十四年(779)田承嗣死,李宝臣坚决要求朝廷以其侄子田悦当节度使,代宗皇帝准许,田悦继任为魏博镇节度使。建中二年(781)李宝臣死,田悦又要求立李宝臣子李维岳为成德镇节度使。这时候的皇帝已经换成了唐德宗李适,德宗想革除旧弊,回绝了李维岳、田悦的要求。为了共同的利益,魏博镇田悦、成德镇李维岳、平卢镇李正己联合起来与朝廷作对,争取世袭制。
面对藩镇的挑战,德宗皇帝调兵遣将讨伐叛军,时李晟所率军也是其中被调遣的一部分。李晟是神策军先锋都兵马使,神策军是禁军之一,本系哥舒翰在陇右的部队,安史之乱肃宗流亡, 神策军赶来入卫,但统领此军的是宦官,先由鱼朝恩统领,德宗时由宦官窦文场、王希迁分别统领,由于是宦官统领的禁军,故衣粮丰厚,且众至15万,其势力颇大。在唐代称诸藩镇的亲军为 “都”,李晟所率的“先锋都”是神策军中的精锐。田悦要岀兵,首先要将原昭仪节度使归附朝廷的邢、磁二州及临洺县夺回,邢州治所今河北邢台市,磁州治所为滏州(今河北磁县),临洺县 (今河北永平县)深入到河朔三镇的腹中,故田悦说:“邢、磁如两眼,在吾腹中,不可不取。”于是派兵马使康愔率8000人围邢州,副将杨朝光率5000人在邯郸西北,以阻昭仪节度使李抱真从磁州进兵,田悦自率兵数万围临洛。邢州刺史李洪、临I名守将张伾坚壁守卫,马燧、李抱真、李晟率军围剿田悦,田悦军大败, 临洺解围。守将张伾守二月,府库空虚,士卒死伤过半,因无物赏增援士兵,提出卖其女以赏军士,军士皆感动得声泪俱下,说: 愿尽死战斗,不要奖赏。这时田悦部将杨朝光仍在邯郸西北,筑防御栅栏,以阻援军,田悦为抵御官军,征调李维岳5000兵助杨朝光,自率万余人救杨朝光。李抱真、马燧、李晟军计8万人。大将李自良、李晟在双冈奋力阻击田悦援军,使其退却。马燧亲自攻击杨朝光的防御栅栏,推着备有火种的战车,冲向杨朝光的栅栏,烧栅栏,斩杨朝光,歼敌5000多。这时李晟又引兵渡过洺水,将正在退却中的田悦军队击溃,田悦引败兵千余连夜逃回魏州,从而解了邢州之围。这时平卢节度使李正己亡故,其子李纳袭位,皇上不许,正巧田悦新败,又求救于李纳,李纳派大将卫俊领兵万人,李维岳派兵3000人,田悦收拾残兵得2万人,驻扎在洹水,平卢军在东,成德军在西,首尾呼应,田悦居中,来往联络, 互相支援。
建中三年(782)正月,李晟又随马燧等在洹水(又名安阳河) 进攻田悦。马燧等诸军在漳水之南,田悦派其大将守卫过漳水的大桥,诸军不能过桥。马燧部担任正面进攻的主力,他令部队造桥过洹州(今河南安阳一带),暗中集结军队沿洹水向魏州进兵, 与田悦军激战,田悦军大败。李晟军与马燧部斩敌首计2万多, 生擒3000余,李纳所率万人几乎消灭殆尽,田悦收拾残兵千余人回魏州。魏州守将李长春看到大势已去,准备降官军,不给田悦开门,但可惜李抱真与马燧不和,马燧忙于战田悦,李抱真进军不积极,魏州守将李长春盼官军不到,只好开门接纳田悦,田悦进魏州,杀李长春。魏州士卒仅数千,若马燧与李抱真齐心合力,魏州城必下,田悦必亡,但由于二人的不和,使田悦得获喘息之机。临洺之战、洹水之战使田悦军受重创。李维岳协从田悦反叛,在田悦战败后,德宗皇帝又令朱滔进攻李维岳,李维岳部将康日知以赵州降朝廷。另一部将王武俊勇冠三军,但受到李维岳猜忌,于是王武俊杀李维岳投降朝廷。德宗以为天下已太平,将成德镇一分为三,任命李维岳部下降将张孝忠为易、定、沧三州节度使,王武俊为恒、冀二州都团练观察使,康日知为深、赵都团练观察使。这个封赐又带来麻烦,王武俊、张孝忠、康日知都是李维岳的部将,王武俊一向看不起张孝忠,又自以为杀李维岳功最大,却封张孝忠为节度使,他与康日知同伍,感到内心不平。朱滔本是卢龙节度使李怀仙部将,与其兄朱泚等杀李怀仙为范阳节度使,时占深州,德宗皇帝以德、棣二州隶属于朱滔,令将所占深州还康日知,朱滔不还,于是魏博节度使田悦乘机勾结朱滔和王武俊共同反抗朝廷。反叛之初,朱滔派人与镇守凤翔的兄长朱泚联系,被马燧得知,报告德宗,德宗将朱泚调来长安,派人监视。按照皇帝布置,河东节度使马燧、朔方节度使李怀光及新任御史大夫的李晟分别击敌军,马燧军攻占了魏州,李怀光军先胜朱滔军。李晟则与张孝忠合势,自魏州引军向北,直奔赵州,王武俊闻风撤兵。李晟在赵州休整三天,又与张孝忠进攻恒州,将朱滔部将郑景济围困,决水淹了郑景济军,田悦、王武俊派兵来救, 双分激战,李晟的战马中流矢而死,李晟率步卒将援兵击溃。李晟围困郑景济月余,朱滔、王武俊恐惧,便联合魏博之众,围困李晟。这时的李晟外有朱滔军包围,他又围困着郑景济,腹背受敌, 自正月至五月,从未懈怠,这时李晟突得重病,不省人事,只好护送回定州。于是朱滔自称冀王、田悦称魏王、王武俊称赵王、李纳称齐王,四王共推朱滔为盟主反叛朝廷,史称四王之乱。四王感到力量不足,又联络淮西节度使(今河南汝南县)李希烈。李希烈本站在朝廷方面与叛军作战,叛军与其联络,以拥其为帝为诱饵,李希烈竟反叛,自称天下都元帅、建兴王,加入了叛军行列。叛军与官军又交战。
李晟在临洺之战、洹水之战中率一旅之师随同作战,马燧英勇善战,足智多谋,受指挥官影响,受战争洗涤,李晟成熟起来,在与郑景济交战时独率一师作战,立有战功,可惜因病而无果。