洮县人。祖父是李思恭,父亲是李钦,世代在陇右任偏将。李晟出生几年后父亲就去世了,他侍奉母亲行孝恭谨,性格刚强,有才干,擅长骑马射箭。十八岁参军,身高六尺,勇猛果断没人比得上。当时河西节度使王忠嗣攻打吐蕃军,敌军有位勇将凭借城墙抵抗,杀伤不少兵将,王忠嗣悬赏军队中善射的人射他。李晟拉弓一箭就把他射倒了。全军都大喊称赞,王忠嗣称赞他,并拍着他的背说:“这是能对抗万人的人。”凤翔节度使高升常听说他的名字,召去封为将领。他曾在高当川攻打叠州反叛的羌人,又在罕山攻打宕州连狂羌,都得胜了,多次提升后任左羽林大将军同正员。广德初年,凤翔节度使孙志直任命李晟统领游军,打败了党项羌高玉等,因功授特进官、光禄卿,后调任太常卿。
大历初年,李抱玉任凤翔节度使,任命李晟为右军都将。大历四年(769),吐蕃包围灵州,李抱玉派李晟率五千人马进攻吐蕃,李晟推辞说:“靠兵力太少了,靠计谋又太多了。”于是请求率一千兵马急出大震关,到临洮,攻破定秦堡,烧毁堡内屯积物,俘虏堡中首领慕容谷钟而归,吐蕃因此解除了对灵州的包围撤退了。官拜开府仪同三司。不久,兼任右金吾卫大将军,泾原、四镇、北庭都知兵马使,总领游军。没多久,节度使马王。。与吐蕃在盐仓作战,战败,李晟率部下冲上去,将马王。。从乱军中救出,因功封合川郡王。马王。。忌妒李晟的名声,加上对他礼节不周,命李晟去京城朝拜,唐代宗将李晟留在禁军里,任右神策军都将。唐德宗即位,吐蕃进犯剑南道,当时节度使崔宁在京城朝拜,三川地区惊恐不安,于是下诏令李晟率神策兵救援,授官太子宾客。于是李晟到了蜀地,攻下飞越,收复了肃宁三城,渡过大渡河,杀头千余颗,吐蕃就退兵了,因此在成都停留了几个月才回京。
建中二年(781),魏博节度使田悦反叛,率军包围了临氵名、邢州,有诏命李晟任神策军先锋都知兵马使,率军和河东节度使马燧、昭义节度使李抱真会合援救临氵名。不久加封兼任御史中丞。河东军、昭义军在临氵名南边进攻杨朝光,李晟和河东军骑兵将领李自良、李奉国在双冈进攻田悦,田悦败退,于是杀死了杨朝光。后又在临氵名会战,唐各军都败退了。李晟率军来到氵名水,乘河结冰过了河,突然攻击田悦军,唐军又振作起来,进攻田悦,大败其军。建中三年(782)正月,又和各路军一起在洹水打败了田悦军,于是进军攻打魏州,因功加封为检校左散骑常侍、食实封一百户。不久,兼任魏府左司马。当时朱滔、王武俊配合田悦,就派兵在赵州包围了康日知。李抱真分出两千兵驻守邢州,马燧因此很生气,想撤军。李晟对马燧说:“当初奉旨讨贼,三将一同进军。李抱真尚书因邢州与赵州相邻,分兵守城,也不是坏事,他的精兵强将都在这里,您突然率军离去,皇上托付的事怎么办?”马燧想通了,向李晟道了歉,又自己到李抱真军营,和他交好如同以前一样。
王武俊攻打赵州,李晟就奏本请求去赵州解围,想然后率军去定州和张孝忠会合,谋攻范阳。唐德宗赞赏他,加封他为御史大夫,使禁军将军莫仁擢、赵光铣、杜季氵此都隶属他。李晟从魏州率军北进,直指赵州,王武俊听说后,撤除包围离去。李晟在赵州停留了三天,和张孝忠军会合后,北征恒州,在清苑包围了朱滔部将郑景济,决堤灌水攻城。田悦、王武俊都派兵来救援,在白楼会战。叛军攻击张孝忠军,张孝忠略后退,李晟率步骑兵击溃了敌军,李晟的马接连被流箭射中。一个月后,城中更吃紧了,朱滔、王武俊很担心,就把魏博的军队全调来,又包围了李晟的军队。李晟向内围攻郑景济,在外与朱滔等作战,一天几仗,从正月直到五月。遇到李晟得了重病,几次不省人事,部将共同商议,就用马把他运回了定州,叛军不敢追击。
李晟病稍好,又要进军,遇上京城发生事变,唐德宗逃到奉天,传令李晟勤王。李晟接到命令流下了眼泪,当天就想回师长安。张孝忠处在朱滔、王武俊之间,以李晟为依靠,不想让李晟离去,几次想要阻止李晟的军队。李晟对部将说:“皇上在外避难,臣下应一路不停地去勤王,哪怕累死。张孝忠想不要我去,我将用心爱的儿子做抵押,并送好马安慰他。”于是留下儿子李凭和张孝忠结为亲家。张孝忠军中有位被张孝忠信任的大将请求见李晟,李晟就解下玉带送给他,并说:“我想西去,希望用这做道别礼物。”并述说了救国难的心意,接受玉带的人果然感激李晟,就劝张孝忠不要阻止李晟。李晟这样才能率军通过了飞狐口,部队抵达代州,皇帝降诏加封李晟为检校工部尚书、神策行营节度使,食实封两百户。李晟军队纪律严明,经过处秋毫无犯。从河中经过蒲津进军渭北,在东渭桥扎营威逼朱氵此。当时刘德信率亲兵救襄城,在扈涧被打败,听说天子蒙难,率领残部先抵达渭南,和李晟会合。军队没有统一号令,李晟不能控制,就乘刘德信到李晟军营时,宣布罪状把他杀了,李晟率几名骑兵跑进刘德信的军营,安抚他的军队,没有人敢妄动。合并了刘德信的军队后,军威更盛了。
当时朔方节度使李怀光也从河北来勤王,驻扎在咸阳,不想要李晟独当一面分自己的功劳,就奏本请求和李晟会合,皇帝降诏李晟军移到李怀光军处驻扎。李晟接令后率军到了陈涛斜,营垒还没筑好,叛军突然来了,李晟就出营列阵,并对李怀光说:“叛军坚守宫城,攻打他们不一定能取胜;现他们离开营地,敢来挑战,这大概是上天将叛贼赐给您了!”李怀光怕李晟立功,就说:“我军才到,马未喂食,兵将没吃饭,怎能作战?不如养精蓄锐,等待时机决战。”李晟知道他的用意,就收兵回营了,当时是兴元元年(784)正月。后每次要会战,李晟必定穿着不同,穿锦绣皮衣、戴绣彩帽走在前面,并亲自指路。李怀光远远看见了讨厌这样,就对李晟说:“将领应稳重,怎能自设标志给敌人当靶子!”李晟说:“我长期在泾原,兵将较敬畏我,我就是想让他们先认出来叫他们害怕。”李怀光更不高兴了,暗地有叛意,拖延不进军。李晟派人劝李怀光说:“叛贼占据京城,皇帝逃出呆在外边,兵权指挥,都交给了您。您应指挥军队快速进兵,我愿率部下听从将令,做您的先锋,死而无悔。”李怀光对他更抵触了。李晟军驻扎在朔方军北面,每次李晟和李怀光一起进军到长安城下,李怀光军就掳掠牛马,老百姓痛恨他们,李晟军秋毫无犯。李怀光军不愿李晟军独有好名声,就将抢来的东西分给他们,李晟军不肯接受。