得以知晓西川的动静虚实。南诏国蒙嵯颠执掌朝政，密谋大举侵犯西川，西南的边防州郡多次向杜元颖报告，杜元颖不信。唐文宗大和三年（829年），嵯颠率兵来攻，边城毫无防备。南诏以西川的降卒为向导，袭击并攻陷了雟州（今四川省凉山彝族自治州西昌市）、戎州（今四川省宜宾市）。十一月二十八日，杜元颖派兵和南诏军队在邛州以南交战，西川兵大败。南诏乘胜攻占邛州。南诏径直抵达成都城下，十二月初四，攻陷成都外城。杜元颖率领将士退守牙城，抵抗南诏军队。杜元颖几次想离城逃亡。南诏军前锋部队远抵东川节度使驻地梓州（今四川省绵阳市三台县）