劉焉當過冀州刺史,但沒有當過幽州刺史。不過,當時還沒有天下大亂,地方官權輕,朝官權重,所以他後來被徵調到朝廷,先後擔任南陽太守、宗正、太常等職務。
靈帝末年,黃巾起義爆發,天下大亂,各地盜賊蜂起。劉焉認為漢朝可能已經沒有能力收拾河山,重新振興了,所以希望找一個地方避亂。所以,他向朝廷建議,刺史權輕,無法調動軍隊,應該選擇有威望的宗室,到地方擔任州牧,以加強權力,可以幫助朝廷穩定局勢。
所以,朝廷才同意,讓劉虞出任幽州牧,劉表出任荊州牧,劉焉一開始想的是去交趾,當交趾牧。因為交趾遠離中原,而天下大亂,受到衝擊比較嚴重的必定是中原地區,遠離中原的邊疆地區是容易穩定的。
但當時的儒學領袖、擔任侍中的董扶跟劉焉說,益州有天子氣。因為東漢的經學非常發達,所以讖緯也很發達,很多人都懂望氣之術,董扶又是當時的儒宗,劉焉本人也是著名儒學大家,所以董扶說益州有天子氣,劉焉就相信了。
剛好益州刺史郗儉在益州苛捐雜稅比較多,很擾民,在當地官聲不好,朝廷想換一個人,劉焉就得到了外放擔任益州牧的機會。
從漢朝的官制來說,州牧實際上也沒有軍權,但是如果州牧帶將軍銜,就有軍權,而朝廷給劉焉的名義是監軍使者,益州牧,又封為陽城侯,就既有軍權又有行政權了。董扶和太倉令趙韙立刻辭去朝廷的職務,跟劉焉一起入川。
就在這時候,涼州、并州都發生了叛亂,涼州刺史耿鄙和并州刺史張懿都被殺掉,涼州的一股叛軍流竄進入了益州境內,在益州境內也引發了比較大範圍的混亂,本來應當被送回朝廷受審的郗儉也被殺死。
益州從事賈龍組織了一部分軍隊,擊敗了叛軍,派人迎接劉焉,進入益州。劉焉進入益州後,吸取郗儉的教訓,廢除擾民的苛政,政策比較寬鬆,招撫各地的叛亂分子,很快就讓益州恢復了秩序。
張魯的母親這時候在益州境內,頗有姿色,加上又是天師道宗主,經常往來劉焉家裡。所以,劉焉在益州穩定之後,就派張魯為督義司馬,率兵前往漢中,進攻並殺死了漢朝朝廷委任的漢中太守,控制了益州和漢中前往漢朝京城的道路,隔斷益州境內與朝廷的聯繫。
如果說進入益州平定叛亂,穩定地方還是劉焉奉朝廷之命所做的事情,那麼派兵進佔漢中,就是明顯的有割據的野心了。
在佔領漢中之後,劉焉又找借口殺死了一些當地的豪強大族,在益州樹立個人的威信。董卓派這時候的漢朝司徒趙謙率兵進攻益州,並且聯絡犍為太守任岐及賈龍起兵,讓他們反對劉焉,也被劉焉派兵消滅。這樣,劉焉就基本上控制了益州的局勢。
隨著對益州的控制基本穩定,劉璋的野心越來越膨脹。此時中原因為董卓廢立天子,將漢獻帝劉協劫持遷往關中,已經秩序大亂。袁紹因為反對董卓廢立天子,所以不承認漢獻帝劉協,想李幽州牧劉虞為帝。與劉虞同為漢朝宗室且出名更早的劉焉自然也不甘人後。劉焉的野心就越來越明顯,在益州造了一些天子才能使用的器物,不臣之心越來越明顯。
在荊州的劉表就向漢朝朝廷上奏,告發劉焉有野心。劉表、劉焉和劉虞是當時地方實力派中最有名的級別漢朝宗室。袁紹有立劉虞為帝的意思,劉焉割據荊州,開始做稱帝的準備,劉表當然也沒閒著。他在穩定了荊州局勢之後,也私自郊祀天地,而郊祀天地本來是天子特權,劉表這麼做,就已經違反了禮制,暴露了明顯的稱帝意圖。
所以,劉表和劉焉其實都有稱帝的意思,劉表這時候上奏揭發劉焉,其實不過是為了給自己找一個進攻劉焉、佔領益州的借口而已。
本來劉焉的幾個兒子,有三個在朝廷擔任職務,劉璋也在其中,帶在劉焉身邊的,只有小兒子劉瑁。漢獻帝劉協得到劉表的告發之後,就讓劉璋去勸劉焉,結果劉焉把劉璋也留下來了。
劉焉的兒子劉范在長安,和馬騰共謀,串通劉焉,企圖起兵襲擊李傕,結果被擊敗,馬騰退回涼州,劉范被殺,劉焉的二兒子劉誕死在軍中。
劉焉進入益州境內的時候,因為原來的州治所經過兵亂,殘破不堪,就將州治所在地遷往綿竹。就在得到劉范、劉誕被殺的消息的時候,綿竹又發生了大面積火災,他之前準備的天子乘輿等都被燒燬。劉焉只好又將州治遷往成都。不久後,劉焉死去。
劉焉死時,本來有兩個兒子,劉瑁和劉璋都在益州,但屬下趙韙等人認為劉璋闇弱,易於控制,所以扶植劉璋繼位為監軍使者,益州牧。之後,劉璋又派趙韙出兵進攻荊州劉表,但趙韙率兵還沒離開益州境內,就率兵發動叛亂,回師成都,想取而代之。
漢末大亂的時候,南陽和關中的一些百姓逃亡進入益州境內,有幾萬人,劉焉進入益州之後,將這些人徵兵入伍,也就是東州兵。正是在東州兵的支持下,劉焉才能威服益州。
但是東州兵在當地橫行霸道,引起當地人反感,趙韙就利用當地人的反對,才有能力起兵反對劉璋。但東州兵知道這次如果劉璋戰敗,他們都得死,就拚命死戰,擊敗趙韙的軍隊,保住了劉璋。
劉璋繼位之後,張魯在漢中也越來越不聽劉璋命令,所以劉璋殺掉張魯留在益州的家屬,和張魯結仇。赤壁之戰後,劉璋先派張松向曹操歸誠,曹操沒有給好臉色,張松就轉而向劉璋建議,召劉備入川,可以抵禦張魯。結果,劉備入川後,反而奪取了益州。
劉備佔領益州後,將劉璋安置在荊州轄區內的秭歸,孫權襲殺關羽、奪取荊州後,仍然拜劉璋為益州刺史。劉璋死後,劉璋的兒子劉闡又被孫權拜為益州刺史,安置到交趾和益州接壤的地方後來,劉闡被吳國徵召還朝,擔任御史中丞。劉璋的另一個兒子劉循一直留在益州,為奉車中郎將。也就是說,劉璋的兩個兒子,分別在吳蜀兩國為官。
不過,劉璋這種情況在當時非常多。黃權在夷陵之戰後被迫投降魏國,一個兒子跟著他在魏國為官,但他還有一個兒子留在蜀國,一直為官。