建兴五年(公元227年)春天,诸葛亮率军北上驻扎在汉中,为北伐做准备。
临行前,诸葛亮上《出师表》请求北伐曹魏,刘禅下诏嘉许。
此后,从建兴六年(公元228年)到建兴十二年(公元234年),诸葛亮五次兴兵北伐曹魏,与魏军交战互有胜负。
在这期间,刘禅一直坚定支持和拥戴诸葛亮的北伐决定。
建兴六年(公元228年)春天,诸葛亮第一次北伐功败垂成,上表请求自贬三等。
刘禅于是下诏将诸葛亮降职为右将军,代行丞相职权;又任命曹魏降将姜维为奉义将军,封当阳亭侯。
次年,诸葛亮北伐攻占曹魏武都、阴平两郡。刘禅认为诸葛亮有功,诏命恢复诸葛亮丞相职权。
同年四月,吴主孙权称帝,刘禅派遣使者祝贺,吴蜀两国通好,订立盟约。
建兴八年(公元230年)秋天,曹魏派遣司马懿、张郃、曹真兵分三路大举进攻汉中,因大雨冲断道路退军。
不久,魏延与吴懿在阳溪击败魏国将领费耀、雍州刺史郭淮;刘禅下诏擢升魏延为前军师、征西大将军,封南郑侯;
又提拔吴懿为左将军,封高阳乡侯。同年,刘禅下诏改封鲁王刘永为甘陵王,梁王刘理为安平王。
次年,因都护李严督运军粮不力,导致诸葛亮北伐退军,刘禅下诏废黜李严为平民,举家流放梓潼郡。
建兴十二年(公元234年)八月,丞相诸葛亮在北伐途中病逝五丈原(今陕西宝鸡岐山县境内)。刘禅诏命于定军山安葬诸葛亮,追谥其为忠武侯。
诸葛亮病逝后,魏延与丞相府长史杨仪争权,彼此举兵攻击;
两人互相上表给刘禅指责对方谋反,刘禅询问侍中董允及丞相府留守长史蒋琬,两人都担保杨仪而怀疑魏延。
魏延兵败,被平北将军马岱斩杀,大军返回成都。
刘禅诏命大赦天下,提拔吴懿为车骑将军,假节],统率汉中军务;
任命蒋琬为尚书令,任命杨仪为中军师,任命丞相府司马费祎为后军师,任命征西将军姜维为右监军、辅汉将军。
建兴十三年(公元235年),杨仪因言获罪,刘禅下诏废黜杨仪为平民,流放汉嘉郡;
不久,刘禅提拔蒋琬为大将军。第二年,武都郡氐族首领苻健率部族四百多家投降,刘禅诏命安抚,将他们迁居到广都县。
第三年,刘禅皇后张氏去世,刘禅下诏追谥其为敬哀皇后;
车骑将军吴懿病逝,刘禅又任命安汉将军王平兼任汉中太守,接替吴懿统率汉中军事。
敬哀皇后去世后,后宫无主,刘禅在延熙元年(公元238年)正月立敬哀皇后的妹妹为皇后,宣布大赦天下,册立皇子刘璿为皇太子,皇子刘瑶为安定王。
刘禅擢升蒋琬为大司马,准许其开府治事,总揽全国政务。
从延熙四年(公元241年)到延熙十一年(公元248年),蜀汉经过诸葛亮五次北伐的消耗后,国力疲敝;
蒋琬主持国政后,对内主张休养生息,安国保民;对外不再坚持北伐用兵,而是采取防守策略,与姜维先后驻扎在汉中、涪县,防备曹魏入侵。
蒋琬驻兵在外期间,朝中政务主要交给费祎处理。
延熙六年(公元243年)十一月,刘禅宣布大赦天下,任命尚书令费祎大将军。
次年二月,曹魏大将军曹爽率大军进攻汉中,镇北大将军王平坚守御敌,刘禅命费祎自成都率军前往救援,魏军撤退。
延熙九年(公元246)年十一月,大司马蒋琬去世,刘禅下诏追谥其为恭侯。
蒋琬去世后,蜀汉朝政格局改变,大将军费祎主理内政,协守汉中;
姜维则接替蒋琬负责对外军事,继承武侯诸葛亮遗志兴兵北伐。
姜维北伐前,蜀国内部发生两次蛮夷部族叛乱,被姜维与邓芝平定。
从延熙十二年(公元249年)到延熙十六年(公元253年),姜维先后三次出兵北伐,都无功而返。
在此期间,大将军费祎遇刺身亡,刘禅下诏追谥其为敬侯。
蒋琬、费祎相继去世后,朝中大臣无以为继,而姜维又领兵在外,刘禅宠幸宦官黄皓,自此朝政日渐荒废。
此后从延熙十七年(公元254年)到景耀五年(公元262年),姜维又先后多次出兵北伐,其中一次曾迁居曹魏狄道、河关、临洮三县的百姓到绵竹县、繁县居住;
另一次曾击败雍州刺史王经,其余皆无所获。刘禅对姜维北伐的态度,前期较为支持;
但后期在群臣的影响下,刘禅支持姜维北伐的立场有所动摇。
蜀国内政上,刘禅在延熙十五年(公元252年),册立皇子刘琮为西河王;
又在延熙十九年(公元256年),擢升姜维为大将军;同年,刘禅册立皇子刘瓒为新平王。