潼关形势险要,道路狭窄,是京城长安的门户。唐玄宗派大将哥舒翰带领重兵把守在那里。叛将崔乾佑在潼关外屯兵半年,没法攻打进去。
叛军攻不进潼关,但是关里的唐王朝内部却生起事端。哥舒翰主张在潼关坚守,等待时机;郭子仪、李光弼也从河北前线给唐玄宗上奏章,请求引兵攻打安禄山的老巢范阳,让潼关守军千万不要出关。但是,宰相杨国忠却反对这样做。他在唐玄宗面前说潼关外的叛军已经不堪一击,哥舒翰守在潼关按兵不动,歼灭叛军的时机会丧失掉。昏庸的唐玄宗听信杨国忠的话,接二连三派使者到潼关,逼哥舒翰带兵出潼关。
哥舒翰明知出关凶多吉少,但是又不敢违抗皇帝的圣旨,只好痛哭一场,带兵出关了。
关外的叛将崔乾佑早已作好准备,只等唐军出关。崔乾祜派精兵埋伏在灵宝(在今河南省西部)西面的山谷里。哥舒翰的20万大军一出关,就中了埋伏,20万大军几乎被叛军打得全军覆没。哥舒翰也被俘虏了。
潼关失守后,关内已无险可守。从潼关到长安之间的一些地方官员和守兵,都纷纷弃城而逃。到了此时,唐玄宗才感到形势危急,他让杨国忠赶紧想办法。杨国忠召集文武百官商量,大家都失魂落魄,谁也想不出一个好主意来。杨国忠知道留在长安已经没有了生路,就劝玄宗逃到蜀地去。当天晚上,唐玄宗、杨国忠带着杨贵妃和一群皇子皇孙,在将军陈玄礼和禁卫军的护卫下,悄悄地打开宫门,逃出了长安。他们事先派了宦官到沿路各地,让官员准备接待。
谁知,派出的宦官早已经自顾逃命了。唐玄宗一伙人走了半天也没有人给他们送饭。
他们走走停停,第三天到了马嵬驿(在今陕西兴平县西)。随行的将土疲惫不堪,饥渴难忍。他们心里越想越气,好好的长安呆不住,弄得到处流亡,受尽辛苦。他们认为,这全都是受了奸相杨国忠的拖累,这笔账应该向杨国忠算。
这个时候,有二十几个忍饥受饿的吐蕃使者拦住杨国忠的马,向杨国忠要粮。杨国忠正忙着应付,周围的兵土便嚷起来:“杨国忠要造反了!”一面嚷,一面向他射起箭来。
兵土们杀了杨国忠,情绪更加激昂起来,把唐玄宗住的驿馆也包围了。唐玄宗听到外面的吵闹声,问是怎么回事,左右太监告诉他,兵士们已把杨国忠杀了。唐玄宗大惊失色,不得不扶着拐杖,走出驿门,慰劳兵士,要将士们回营休息。
兵士们哪里肯听唐玄宗的话,照样吵吵嚷嚷。玄宗派高力士找到将军陈玄礼,问兵土们不肯散的原因。陈玄礼回答说:“杨国忠谋反,贵妃也不能留下来了。”
唐玄宗为了保住自己的命,只好下了狠心,叫高力士把杨贵妃带出去,用带子勒死了。将士们听到杨贵妃已经被处死,总算除了一口恶气,撤回了军营。
唐玄宗经过这场兵变,像惊弓之鸟一样,急急忙忙逃到成都。太子李亨被当地官吏、百姓挽留下来主持朝政。李亨从马嵬驿一路收拾残余的兵士北上,在灵武(今宁夏灵武西南)即位,这就是唐肃宗。