汉更始二年(24年)冬,赤眉军首领樊崇率兵入颍川(今河南禹县),所向披靡,但兵疲厌战,都想东归。樊崇担心众人东归心必散,于是决定攻打长安,挟刘盆子以为号召,此举是想挟刘氏为帝而自尊。于是将其众分为两部分,樊崇与逢安为一部,自武关入;徐宣等一部,自陆浑关(今河南嵩县境内)入,以会师关中攻长安。此时更始之兵为巩卫关中也分为两部分:一部由讨难将军苏茂统率,据弘农(函谷关),以抗拒赤眉军;一部由比阳王王匡、淮阳王张邛统率,守河东以抗拒刘秀的将领邓禹。赤眉军二路乘更始部署之机,而从陆浑关入关中。
当光武帝刘秀在河内时,已经得知赤眉军入关的消息。只因当时河北还未平定,就一面命寇恂守河内,而自回河北,扫**群贼;又一面派邓禹率精兵2万西进,夺取河东安邑,相机窥取长安。邓禹军的编组如下:以韩歆(原河内太守,以河内投降刘秀)为军师,以李文、李春、程虑为祭酒(官名——僚属),冯愔为积弩将军,樊崇(与赤眉军领袖非同一人)为骁骑将军,宗歆为车骑将军,邓寻为建威将军,耿??为赤眉将军,左于为军师将军。更始三年(25年,即建武元年)正月,邓禹军进攻箕关(今河南济源县王屋山南),更始河东都尉守关抗拒邓禹。邓禹攻打了十天,才攻破该关,获辎重千余辆,遂进围安邑。但围攻安邑数月都没能攻下(这时冯异在孟津致洛阳李轶书,劝令归附光武帝),更始就派大将军樊参,带数万人渡大阳(今山西平陆县南茅津渡口)救安邑,邓禹派各将在解南(今解县南)迎击,大破敌人援兵,并斩樊参。于是王匡率成丹刘均等10余万(实际上是3到5万人),再次驰救安邑,进击邓禹军,邓禹军大败,邓禹的将领樊崇战死。是日到日暮战斗才结束,邓禹的军师韩歆及各将领,看到兵势已挫,都劝邓禹乘夜撤走,邓禹不听。第二天(六月二十六日),王匡等休兵休战,邓禹因此得以整顿所部,准备再战。六月二十七日,王匡以全军出击,进攻邓禹,邓禹令军中不得妄动;到王匡军进到营下,邓禹则令诸将突然出其不意,进行全面反击,因此大破王匡军。王匡等皆弃军逃走,邓禹率轻骑急追,遂擒王匡将领刘均、河东太守杨宝以及中郎将弭强等,皆斩之,所获兵器不可胜数,河东遂被平定。邓禹以李文为河东太守,全部更置属县令以资镇抚。王匡、张邛等奔还长安。
东汉建武二年(26年)正月,赤眉果然不出邓禹之所料,在长安粮尽、大肆焚掠之后,引兵西走,号称兵众百万。自扶风转掠城邑,向北入安定、北地二郡。邓禹在赤眉军离开长安西走时,即引兵南趋长安,乘长安空虚之机,进入并占据了长安。九月,延岑也从陈仓(今陕西宝鸡县东)向长安进发,与邓禹在蓝田发生激战,邓禹军被打败,退据云阳(今陕西三原县西),长安城落入延岑之手。是月,赤眉军欲引军西上陇地,被隗嚣的将领杨广所阻击,被打败,随即又被杨广追到乌氏泾阳(今甘肃省平凉县西及以北地区),赤眉又被打得大败。旋即赤眉军向南进军到番须(今陕西陇县西北),又遇上大雪,士兵被冻死的很多,于是赤眉军又向东进军;邓禹派兵在郁夷(今陕西陇县西)迎击,反而被赤眉军打败,这样赤眉军就又进入长安城。延岑在赤眉军东归时,也避开了赤眉军,退居到屯陵(长安南50里),赤眉当即派遣逢安袭击延岑,赤眉军战死的达10多万。正当这时,邓禹也进兵乘虚袭击长安,但恰好遇到赤眉军的后队谢禄的军队到达,又被赤眉军打败。至此,光武帝刘秀以邓禹与赤眉军之战,一再无战功,不能攻取长安,而三辅郡县大姓,各自拥众自重,邓禹又不能平定,于是就于同年十一月召回邓禹,另外派遣冯异来代替邓禹。这时,铜马、青犊、尤来诸余贼,又在上郡立孙登为天子;孙登虽然很快投降光武帝刘秀,但是可以说明当时平陕以西的混战状态。所以说光武帝派邓禹乘赤眉西入关之机,以窥取长安的计划,至此全告失败。
赤眉军在崤底惨败,余众10万多人,东走宜阳。光武帝就亲自率领六军,严阵以待,赤眉军遂不战而降。赤眉军从更始二年冬,由颍川向关中进军,到全部投降光武帝刘秀为止,共经历二年多的时间,终被刘秀灭掉。随后,冯异奉光武帝之命平定关中,攻取了长安。