劉璋手下還有一位謀臣名叫張松,此人很有才干,他認為劉璋成不了大事,自己的能力也完全得不到發揮。
一次偶然的機會,法正與張松結識,張松非常欣賞法正的才華,二人成為好友,經常一起喝酒,發泄對劉璋的不滿情緒。
當時,荊州地廣人多,物產豐富,是兵家必爭之地。公元208年,曹操將其攻下。本就膽小的劉璋更加害怕,因為曹操可以直接從荊州對他發起進攻。
為了討好曹操,劉璋便派張松作為使者去拜見曹操。張松身材矮小,相貌不端,曹操見到他后沒多瞧一眼,便將他打發走了。張松回去后就建議劉璋去尋求劉備的合作,畢竟二人都是親戚。同時,張松還向劉璋推薦了法正。
法正一見到劉備,就被其個人魅力所征服,覺得劉璋根本無法與之相比。回去與張松商量后,法正便準備尋找跳槽的機會。
公元211年,曹操向漢中的張魯發動進攻,劉璋坐不住了,再一次讓法正出使劉備,尋求幫助。
法正借此機會投靠了劉備,準備幫其占領益州,取代劉璋。劉備考慮之后,開始發兵,駐扎到了益州府城。劉璋見到劉備的兵馬后,終于松了口氣,又是提供兵馬,又是提供物資。
可過了很長一段時間,劉璋發現劉備并沒有攻打漢中的意思,這才恍然大悟,劉備要攻打的其實就是自己。而劉備遲遲沒有動手,是因為沒有出師之名,想打仗總得需要個理由。張松見劉備遲遲沒有對劉璋動手,內心十分著急,便向劉備寫信進行催促。
此時的劉璋已經知道法正叛變,而張松又是其好友,于是便派人監視張松。結果張松的書信被劉璋截獲,張松被殺。劉備也因此有了進攻的借口。
此時的劉璋焦急萬分,不過他手下的謀士鄭度卻給出了“西遷百姓,并堅壁清野”的建議,也就是把百姓向西遷移,然后加固防御,絕不出城迎戰。
劉備堅持不了多久就會因為糧草問題落荒而逃。這里不得不提劉備的情報網還是非常厲害的。鄭度的這則建議很快被劉備知道,而他最擔憂的也正是如此。
法正立即給劉備吃了一顆定心丸,說劉璋絕不會采納鄭度的建議,原因在于劉璋性格寬厚。劉璋不但不出兵攻之,還要侵擾百姓,這怎能是一城之主所為?
結果正如法正所料,劉璋并沒有聽從鄭度的建議,直接與劉備展開了激烈的戰斗。最終,劉璋被劉備擊敗,棄械投降。
劉備占領益州之后,直接面對的就是漢中的曹軍。如果不主動出擊,劉備隨時會受到曹操的威脅。劉備之所以如此糾結,是因為他單獨與曹操的交手中從未贏過,就連赤壁之戰還是在東吳的幫助下才完成的。
這時,法正向劉備說出了自己的想法,他認為曹操攻下漢中以后卻沒有繼續攻打益州,而是把夏侯淵與張郃留在了漢中,一定是曹軍內部出了問題。現在猛攻必然為天賜良機。劉備贊同法正的分析,于是出兵漢中。
起初,戰事并不順利,在夏侯淵、張郃以及郭淮等名將的抵抗之下,劉備在陽平關不僅沒占到便宜,反而損兵折將。
但在法正的計策下,劉備帶隊繞到了漢中定軍山,從而分散了曹軍兵力,同時四處放火,令曹軍疲于應付。