汉建安十七年(公元212年),刘璋让刘备率军进攻张鲁,刘备下令暂时驻扎于葭萌。
刘备取汉中
庞统向刘备建议说:“现在应该迅速袭击成都。刘璋不懂军事,又无防备,必然可以一举平定,这是上策。
“杨怀、高沛都是刘璋手下的名将,拥握重兵。听说他们曾多次劝刘璋与您疏远。将军不如派人去告诉他们,说荆州有紧急情况,您准备回去援助,并假装要回去的模样。这两个人既佩服将军的英名,又欣喜将军离去,估计一定会只带很少的人,前来送行;我们可以趁机抓住他们,再去吞并他们的部队,再进军成都,这是中策。
“退回白帝城,再谋时机,这是下策。但若在这儿犹豫不决、无所作为的话,难以为继。”刘备同意采用庞统的中策。后来曹操进攻孙权,孙权向刘备求援。刘备给刘璋写信,向他说明自己必须回军援救孙权,并请求刘璋补充他1万兵力和物资粮草。
刘璋只答应给他4000士兵,其余的要求都只落实一半。刘备于是趁机刺激属下说:“我们为益州征讨强敌,奋战疆场,而刘璋却积攒财物,舍不得犒赏,这样怎么能让士大夫为他死战呢?”
刘备一走,张松写信给刘备和法正说:“大事即成,为何无故离开呢?”
张松的哥哥、广汉太守张肃知晓张松的密谋后,害怕祸及自身,就向刘璋告发了张松。
刘璋大怒,杀掉张松。又向驻守各关口和要塞的将领发送檄文,命令他们与刘备绝交。刘备非常生气,召见刘璋手下的白水军督杨怀、高沛,责备他们对客人无礼,并将两人杀害。然后率领军队进驻关头,吞并了杨怀、高沛的部队。又继续进军,占领涪城。
次年,益州从事郑度听说刘备起兵,对刘璋说:“左将军刘备孤军深入,并且兵力不足,军心不稳,军队缺少给养,只能靠田野里的庄稼为食。
“我们不妨把巴西与梓潼的百姓全都驱赶到白水、涪水以西,销毁巴西与梓潼仓库中的粮食物资和田野里的庄稼;同时修筑营垒,深挖战壕,以逸待劳,等他们到来。
“刘备前来挑战,我们就坚守不出。这样,不足百日,他们一定会自动撤退。我们趁机追击,一定可以擒获刘备。”
刘备获悉此计后同法正商量对策。法正说:“刘璋肯定不会采纳郑度的计策,您不必担心。”
刘璋果然对部下说:“千古以来哪有迁移百姓来躲避敌人的!”于是不采用郑度的计策。
刘璋派刘、冷苞、张任、邓贤、吴懿等人抵御刘备,结果都被击败,退守绵竹以后,吴懿向刘备投降。刘璋又派护军李严、费观统领驻守绵竹的军队,但两人也投降了刘备。
如此,刘备的兵力更加强大,并占领了周围的县城。
刘、张任与刘璋的儿子刘循退回雒城驻守。刘备进军,包围了雒城。张任出城与刘备大军交战,结果大败,张任战死。
汉建安十九年(公元214年),刘备围城不下。其间,庞统不幸被流箭射中,伤重而死。
法正写信给刘璋,希望他投降:“左将军刘备起兵以来,对您仍有旧情,并无恶意。我认为您不妨归顺,以保留您的家族。”刘璋没有回信。
刘备终于攻下雒城,进军成都。诸葛亮、张飞、赵云也率领军队前来会合。
马超知道张鲁能力不足,张鲁的部将杨昂等人又多次诋毁他,心中抑郁不安。
刘备派建宁督邮李恢前去劝降,马超就从武都逃到氐人部落,并寄信求降。
刘备暗中派兵相助。马超到达成都后,刘备让他驻守城北,城里的人都很惊恐。刘备包围成都几十天,派从事中郎简雍进城劝降刘璋但城中官吏和百姓都愿意抵抗到底。
刘璋说:“我们父子统领益州20多年,百姓未得益处。百姓苦战3年,暴尸荒野,全是我的错!”于是下令打开城门,和简雍共乘一辆马车出城投降,部下痛哭流涕。刘备把刘璋安置在公安,归还他的全部财物,并授予振威将军的印绶。
刘备进入成都,大摆酒宴,犒劳士兵。将城中全部财物赐给将士,粮食和丝帛则物归原主。刘备兼任益州牧,拜诸葛亮为军师将军、益州太守。随后封官拜将,建立地方政权。