信州之捷后,起义军乘胜攻克睦州(今浙江建德)、婺州(今浙江金华)和宣州,直驱长江南岸。七月,黄巢60万大军自采石(今安徽马鞍山西南)渡江,进围天长(今安徽天长)、六合(今江苏六合),高骈不顾唐廷严词督责,称病不敢出战。唐廷无奈,只得改任曹全最为天平节度使兼东西副都统,率兵6000屯泗州(今江苏盱眙北)以阻义军渡淮;又调河南各道兵守溅水(今河南商水西南);泰宁节度使齐克让率兵屯汝州以屏蔽洛阳。九月,黄巢击破曹全最军,顺利渡过淮水。又乘唐军在徐昌发生内乱,溵水防务瓦解之际。一举攻占申、颖(安徽阜阳)、宋、徐、兖等州。
黄巢见夺取西京的时机已经成熟,遂发出檄文警告各藩镇说:“各宜守垒,勿犯吾锋!吾将入东都,即至京邑,自欲问罪,无预众人”,以分化孤立唐廷。十一月十七日,义军进抵洛阳,唐东都留守见大势已去,率百官不战而降。黄巢夺取洛阳后,旋即挥军西进,十一月二十二日克虢州(今河南灵宝),直逼潼关。潼关乃关中锁钥,长安门户,但唐军在潼关的防务甚为空虚,仅有从洛阳附近撤下来的齐克让部饥卒万人。唐僖宗不愿逃跑,妄图调集力量固守潼关,但处于土崩瓦解中的唐廷已根本无法集中兵力。经唐僖宗亲自面召,才勉强凑集了2800名神策军,由张承范等率领,于十一月二十五日出发至潼关。十二月初一,当张军到潼关时,起义军前锋亦同日到达。齐克让军与起义军一接触即被打得大败,退回关内。第2天,黄巢军一部从潼关左侧禁谷迂回到关后,实行前后夹击,第3天即攻克潼关,并收降唐军一部。起义军乘胜继续西进占领华州(今陕西华县),唐河中(治蒲州,今山西永济)留后王重荣投降。十二月初四,唐僖宗见长安已危如累卵,忍痛下今授黄巢以天平节度使之衔,但黄巢对此根本不屑一颐,挥军直逼长安。
十二月初五,长安城一片混乱。田令孜率五万神策军挟持唐僖宗经骆谷秘密逃往西川,宰相卢携自杀。当日傍晚。义军前锋将柴荣率军进入长安城,唐金吾大将军张直方带文武官员到灞上出降。黄巢率军入城,受到人民的夹道欢迎。