潼關是京城長安的門戶,那裡形勢險要,道路狹窄。唐玄宗派大將哥舒翰帶領重兵把守。叛將崔乾祐在潼關外屯兵半年,沒法打進去。潼關的守軍每天晚上在烽火台燒起一把火,作為平安的信號。關裡的烽火台接到信號,也一座接一座放「平安火」,一直傳到長安,讓長安人民放心。
叛軍攻不進潼關,但是關裡的唐王朝內部卻鬧起矛盾來。哥舒翰主張堅守潼關,等待時機;郭子儀、李光弼也從河北前線給唐玄宗上奏章,他們請求引兵北上,攻打安祿山的老巢范陽;要潼關守軍千萬不要出關。但是,宰相楊國忠卻反對這樣做。有人對楊國忠說:「現在重兵都在哥舒翰手裡,如果哥舒翰打勝了,回到長安,你的宰相位子就保不住了。」楊國忠自己知道他這個宰相最不得人心,聽了這番話,更加害怕,就在唐玄宗面前說潼關外的叛軍已經不堪一擊,哥舒翰守在潼關按兵不動,會喪失殲滅叛軍的時機。昏庸的唐玄宗聽信楊國忠的話,接二連三派使者到潼關,逼哥舒翰帶兵出潼關。
哥舒翰明知出關沒有好處,但是沒法違抗皇帝的聖旨,痛哭一場,只好帶兵出關了。
關外的叛將崔乾祐早已養精蓄銳,只等唐軍出關。崔乾祐派精兵埋伏在靈寶(在今河南省西部)西面的山谷裡。哥舒翰的二十萬大軍一出關,就中了埋伏,幾乎被叛軍打得全軍覆沒。二十萬人馬只剩下八千。
哥舒翰還想收拾殘兵,他的部下先亂了起來,叛軍乘勝打進潼關。哥舒翰也被俘虜了。
潼關一失守,關內就沒險可守。從潼關到長安之間的一些地方官員和守兵,都紛紛放棄城逃走。
開始,哥舒翰還派人到長安告急。後來,告急的文書中斷;晚上,烽火台上的「平安火」也見不到了。到這時候,唐玄宗才感到形勢危急,著急起來,要楊國忠想辦法。
楊國忠把文武百官召集起來商量,大家都乾著急,誰也想不出一個好主意來。楊國忠知道留在長安,沒有生路,就勸玄宗逃到蜀地去。
當天晚上,唐玄宗,楊國忠帶著楊貴妃和一批皇子皇孫,在將軍陳玄禮和禁衛軍護送下,悄悄地打開宮門,逃出長安。
他們派個宦官先到沿路各地,要官員準備接待。
哪知道才到咸陽,派出的宦官和縣令都已經逃了。唐玄宗一夥人走了半天,沒有人給他們送飯。隨行太監好容易找到當地百姓,向他們討了點糧食。有幾個百姓送上一點高粱餑餑。那些皇子皇孫平時養尊處優,哪裡吃過這樣的飯,但是實在餓得慌,也顧不得什麼體面,沒有碗筷,就用手撈著吃,一下子就吃得精光。
唐玄宗勉強嚥了幾口餑餑,直流眼淚。有個老人擠到車前,對玄宗說:「安祿山想造反,已經不是一天了。這麼多年來,有人向朝廷告發,反而被關被殺。陛下周圍的大臣,只會奉承拍馬,外面的情況,陛下一概聽不到。我們普通百姓早知道有這麼一天,不過朝廷宮門太深,百姓的意見陛下聽不到。要不是到了今天這步田地,我們怎麼能站在陛下面前說話呢!」
唐玄宗垂頭喪氣地說:「這是我太糊塗,現在後悔也來不及了。」
這樣走走停停,第三天到了馬嵬驛(在今陝西興平縣西,嵬,音wēi)隨行的將士又餓又疲勞,實在忍不住了。他們心思越想越氣,好好的長安呆不住,弄得到處流亡,受盡辛苦。他們認為,這全是受了奸相楊國忠的累,這筆帳得向楊國忠算。
這個時候,有二十幾個吐蕃使者攔住楊國忠的馬,向楊國忠要糧。楊國忠還沒來得及答話,周圍的兵士已經嚷起來:
「楊國忠要造反了!」一面嚷,一面就射起箭來。
楊國忠慌裡慌張想逃走,幾個兵士趕上去,把他的頭砍了下來。
兵士們殺了楊國忠,情緒激昂,把唐玄宗住的驛館包圍了起來。唐玄宗聽到外面鬧哄哄的,問是怎麼回事,左右太監告訴他,兵士們已把楊國忠殺了。玄宗大吃一驚,不得不扶著枴杖,走出驛門,慰勞兵士,要將士們回營休息。
兵士們不理唐玄宗的話,照樣吵吵嚷嚷。玄宗派高力士找到陳玄禮,問兵士們為什麼不肯散。陳玄禮回答說:「楊國忠謀反,貴妃也不能留下來了。」
這下可把唐玄宗難住了,他怎麼捨得殺這個寵愛的妃子呢?他低著頭站了半晌,才說:「貴妃住在內宮,怎麼知道楊國忠謀反呢?」
高力士知道不殺楊貴妃,不能平息兵士的氣憤,就說:「貴妃是沒有罪,但是將士們殺了楊國忠,如果留著貴妃,將士哪會心安。希望陛下慎重考慮,將士心安,陛下也安全了。」
唐玄宗為了保自己的命,只好狠了狠心,叫高力士把楊貴妃帶到別的地方,用帶子勒死了。
將士們聽到楊貴妃已經被處死,總算消了口氣,才撤圍回營。
經過這場兵變,唐玄宗像驚弓之鳥一樣,急急忙忙逃到成都去了。太子李亨被當地百姓挽留下來主持朝政。李亨從馬嵬驛一路收拾殘餘的隊伍北上,在靈武(今寧夏靈武西南)即位,這就是唐肅宗。