後主對諸葛亮言聽計從,當然準許北伐。諸葛亮領兵數萬,圍攻陳倉。魏國大將軍曹真派將軍郝昭把守陳倉城。郝昭,字伯道,太原人,智勇雙全。郝昭到達陳倉後,整修城池,準備守具。諸葛亮領兵攻城時,陳倉已經很堅固了。諸葛亮攻不下陳倉,就派與郝昭同鄉的靳詳到城下招降郝昭。郝昭在城樓上應聲道:“我已是魏國大臣,誓死不降。你回去稟報諸葛亮,能攻就攻,不能攻就退回吧。”靳詳知道勸不動,回營稟報諸葛亮。諸葛亮又派靳詳到城下,陳述利害關係,郝昭說:“我已經說過了,決不投降。雖然我與你相識,但利箭卻不認識你。”說完,就拉開弓箭,要射靳詳。靳詳慌忙退回。諸葛亮十分惱怒,率兵猛攻。城上的巨石像雨點一樣落下來,諸葛亮特地製造數十具雲梯,從四麵攀登,郝昭用火把雲梯燒斷。諸葛亮又用火衝車攻城,郝昭下令,用繩綁住石頭,奮力扔下,火衝車都被毀壞。過了十幾天,陳倉仍沒有攻破。曹真派將軍費耀支援郝昭,曹叡也讓張郃趕去營救陳倉。諸葛亮正愁軍糧不夠,聽說魏兵大舉到來,隻好撤圍回去,並囑咐魏延一番,讓他斷後。
魏延正慢慢退回,忽然後麵塵土飛揚,喊聲震天,他料知是魏兵追來,就令部下舉旗先走,自己率領幾十個騎兵埋伏在樹林中,靜候魏兵。魏軍的將領是王雙,望見前麵蜀軍的旗幟,揮兵急追。魏延等王雙騎馬跑過來,就拿著刀突然衝出,不等王雙回頭,便從背後將他砍死。魏兵見主將已死,驚慌逃散。魏延追殺一陣,然後返回漢中,向諸葛亮複命。蜀兵休養了一個多月,轉眼冬盡春來,諸葛亮派部將陳式攻打武都、陰平二郡。魏國的雍州刺史郭淮領兵支援,與陳式相持數日。諸葛亮派兵幫助陳式,擊退郭淮,攻下武都、陰平,自己返回漢中。後主劉禪又封諸葛亮為丞相,諸葛亮不肯接受,費禕再三規勸,諸葛亮才領命。
不久,孫權稱帝,派人出使蜀國,打算與蜀國平分中原。蜀國大臣議論紛紛,大多主張與吳國絕交,諸葛亮仍打算與吳國和好,入都進見後主。後主正因吳國的事情猶豫不決,見諸葛亮到來,急忙向他求教。諸葛亮將與吳國絕交的壞處說了一通,後主連連點頭,派衛尉陳震前去吳國道賀。孫權以禮相待,雙方約定打敗魏國以後,豫、青、徐、幽四州歸吳國,兗、冀、並、涼四州歸蜀國,隻是司州以函穀關為界。
當時三國鼎立,魏國最大,有十三個州,除上文所說的九州外,還有荊、揚、秦、涼四州,但這四州魏國都沒有占全。吳國隻有荊、揚、交、廣、郢五州,其中荊、揚二州與魏國共同占據。蜀國最小,僅有遂州,後來把它分出一個梁州,又占有涼、交二州的一部分,算是四州。漢武帝時,曾把整個中國分為十三郡,郢、廣二州並不在其中,它們是由吳國設置的。孫權早就想稱帝,隻因畏懼魏國,遲遲沒有行動。後來見魏兵接連戰敗,才放膽稱尊。吳國的大臣趁機奉承,說有黃龍在武昌出現。孫權於是改黃武八年為黃龍元年,尊父親孫堅為武烈皇帝,兄長孫策為長沙桓王,立兒子孫登為太子,提升陸遜為上大將軍,諸葛恪為太子左輔,張休為太子右弼。張休是張昭的小兒子。張昭年紀老邁,入朝向孫權道賀,褒揚他的功德。孫權笑著說:“假如當初聽從你的話,我早已成了魏國的大臣,恐怕就沒有今天了。”張昭滿臉慚愧,謝罪退出,然後上疏乞求休假。孫權封他為婁侯,食邑一萬戶。張昭回家之後,不再出仕為官。又過了八年然後去世,享年八十一歲。孫權回都建功立業,隻留上大將軍陸遜輔佐太子孫登,駐守武昌。這個消息傳入蜀都,諸葛亮因孫權回到江東,更加放心,又想向北討伐魏國。部署了好個幾月,已是建興八年的夏季,這時有警報傳來,魏國大將曹真、司馬懿前來奪取漢中。