马超兵败渭南逃到边塞胡人那里,曹操追剿到安定,苏伯又在河间反叛,曹操要率军东还。这这时,凉州参军杨阜,字义山,径来长安见曹操。对曹操说:“马超有韩信、黥布的勇猛,极得羌、胡等民族的拥戴,西部边境的人都敬畏他。如果您的大军回师后,不作周密准备,陇上诸郡恐怕就不再为国家所有了。”曹操深表赞同,决定撤军,留夏侯渊屯兵长安,夏侯渊保举冯翊高陵人,姓张,名既,字德容,为京兆尹,与夏侯渊同守长安。曹操班师回都。献帝排銮驾出郭迎接。诏曹操“赞拜不名,入朝不趋,剑履上殿”:如汉相萧何故事。自此威震中外。公元211年(建安十六年),刘璋听说曹操将派兵到汉中征讨张鲁,心中恐惧,张松又劝说刘璋:“现在州中将领庞羲、李异等人都居功自傲,且心怀异志,如不能得到刘豫州的帮助,益州将外有强敌攻击,内遭乱民骚扰,必定走向败亡。”刘璋又听从了张松之言,立刻派法正率部队迎接刘备。刘璋的主簿巴西人黄权劝阻说:“刘备有骁勇的名声,现在要是以部下的身份对待他,就没法满足他的心愿;要是以宾客的身份对待他,一国不容二主,造不是使自己安全的办法。”从事广汉人王累将自己倒吊在益州城门上劝阻刘璋,刘璋全都不予采纳。刘璋为刘焉幼子,母费氏,是后来娶了刘璋女儿的费观的族姑。
公元188年(中平五年),刘焉向汉灵帝建言设立州牧总管各地军政大权,自己出任益州牧,而刘璋与兄长刘范、刘诞都留在京城,只有刘瑁随刘焉入蜀。刘璋后来出任奉车都尉,受朝廷派遣诏谕刘焉,刘焉就把他留下不再返回朝中。公元194年(兴平元年),刘范在长安与马腾密谋进攻权臣李傕,泄露之后与刘诞一起被杀,而刘璋则得以幸免。刘焉的世交议郎庞羲保护刘焉的几个孙子,送入益州。刘焉因为逝子之痛,又逢绵竹城中大火,不得已迁治成都,背疽发作逝世。刘焉死后,益州官吏赵韪等希望利用刘璋温仁,于是上书推举他继掌益州刺史,得朝廷诏为益州牧,同时任命赵韪为征束中郎将。将领沈弥、娄发、甘宁起事反对刘璋,被赵韪打败后奔荆州。
在此以前荆州牧刘表上书告发刘焉僭越身份,在乘车器物衣服方面和天子比拟,因此赵韪驻兵朐腮以防备刘表。当初南阳、三辅的几万家百姓流亡到益州,刘焉将他们全部收为部众,称为“束州兵”。刘璋性情柔弱宽容,缺乏威信谋略。束州入侵凌横暴,成为百姓的灾难,刘璋没有能力制止,旧有的士人相当埋怨并且叛离。赵韪在巴中,很得百姓士兵的欢心,刘璋将大权交给他。赵韪见到民心不和,就暗中勾结州中的世家望族。
公元200年(建安五年),赵韪反动叛乱,蜀地多处响应,幸得刘焉之前收容荆州、三辅流民建立的“东州兵”拼力死战,才平息了叛乱,杀赵韪于江州。
刘璋为人懦弱,原本依附于刘焉的汉中张鲁骄纵,不听刘璋号令,于是刘璋杀张鲁母弟,双方成为仇敌,刘璋派庞羲攻击张鲁,但多次被张鲁所破。

