公孫瓚字伯珪,遼西郡令支縣人。
他曾在郡裡做書佐,他姿貌俊美聲音洪亮,侯太守很器重他,把女兒嫁給了他,還派他到涿郡名士盧植那裡學習經典在那裡也和劉備結識。
後來他又在郡裡擔任小吏,劉太守犯罪被朝廷送交廷尉,公孫瓚為他駕車,親自為僕役照顧他,等到劉太守被判流放日南郡時,公孫瓚準備了米和肉,在北芒山祭祀祖先,舉杯祈禱說:“以前我是父母的兒子,現在我是朝廷的臣子,我要去日南了,日南有瘴病之氣,也許恐怕我不能生還了,與祖先在這裡道別。”拜了又拜之後慷慨激昂地站了起來,當時看見的人沒有不嘆息的。劉太守行至半路得以赦免回鄉。
公孫瓚以孝廉身份被舉薦為郎官,出任遼東屬國長史。
他曾經帶領幾十名騎兵出行到邊塞,看見幾百名鮮卑騎兵,他就退到空亭裡,與隨行的騎兵約定說:“現在不衝擊他們,我們就要死光了。”公孫瓚於是親自手持長矛,兩端裝有利刃,馳馬出擊刺殺胡人,殺傷幾十人,隨行騎兵也死了一半,最終脫離險境,鮮卑人這次怕了,後來不敢再入塞內,公孫瓚後來升任涿縣令。
光和年間,涼州盜賊蜂起,朝廷徵發幽州精銳突擊騎兵三千人,授予公孫瓚都督總管軍事的印璽,讓他領兵。
軍隊行進至薊中,漁陽人張純誘使遼西烏丸丘力居等人反叛,劫掠薊中,自稱將軍,劫掠官民攻打右北平、遼西兩郡眾多屬國的城池,所到之處無不殘破。
公孫瓚率領軍隊,追擊討伐張純等人有功,升任騎都尉,屬國烏丸貪至王率領族人到公孫瓚營中投降,公孫瓚又升任中郎將,封都亭侯,進駐屬國,與胡人交戰五六年,丘力居等人劫掠青州、徐州、幽州、冀州,四州深受其害,公孫瓚不能抵擋。
朝廷商議認為宗正東海人劉虞有德有義,曾為幽州刺史,廣施恩德信義,很多戎狄部族都歸附他,如果派他鎮守邊疆,不勞師動眾就能平定禍亂,於是任命劉虞為幽州牧。
劉虞到任,派使者到胡人地區,陳述利害關係,責令他們送來張純的首級,丘力居等人聽說劉虞來了,很高興,各自派翻譯跟隨使者一同回來。
公孫瓚嫉妒劉虞有功勞,就暗中派人截殺胡人的使者,胡人知道實情,抄小路去見劉虞,劉虞上書裁撤了各地駐紮的軍隊,只留下公孫瓚率領步兵騎兵共一萬人駐紮在右北平郡。
張純於是拋妻棄子,逃入鮮卑地區,被他的門客王政殺死,送首級到劉虞那裡,朝廷封王政為列侯,劉虞因功被任命為太尉,封襄賁侯。
當董卓到洛陽後,劉虞升任大司馬,公孫瓚為奮武將軍,封薊侯。
關東地區興起義軍,董卓就挾持皇帝向西遷都長安,徵召劉虞為太傅,當時道路阻塞,任命沒有到達。
袁紹、韓馥商議,認為年少的皇帝受制於奸臣,天下人心沒有歸屬,劉虞是宗室名臣,民心所向,於是推舉劉虞為皇帝。
他們派使者到劉虞那裡,劉虞始終不肯接受,袁紹等人又勸劉虞總領尚書事,秉承皇帝旨意掌管封爵任官的大權,劉虞還是不聽,然而仍與袁紹等人聯合。
劉虞的兒子劉和擔任侍中,身在長安。皇帝想回到東都洛陽,派劉和偽裝之後逃離了董卓的控制,悄悄出武關去見劉虞,命令他率兵前來迎接。
劉和途經袁術駐地,向他陳述皇帝的意思,袁術想得到劉虞援兵的利益,扣留劉和不放他走,許諾派兵共同西進,讓劉和劉虞寫了一封信,劉虞得到劉和的書信,就打算派幾千騎兵到劉和那裡。
公孫瓚知道袁術有野心,不想派兵,阻止劉虞,劉虞不答應,公孫瓚害怕袁術知道自已勸阻後後會怨恨自已,也派他的族弟公孫越率領一千騎兵去袁術那裡,以示願意與他結交,並且暗中教唆袁術逮捕劉和,吞併他的軍隊。
因為此事劉虞、公孫瓚的矛盾更深了,劉和逃離袁術來到北方,又倒黴的被袁紹扣留。
這個時候,袁術派孫堅駐紮陽城抵禦董卓,袁紹派周昂奪取陽城,袁術派公孫越與孫堅進攻周昂,沒有獲勝,公孫越中流箭死去。
公孫瓚知道後憤怒地說:“我弟弟死了,禍端起於袁紹。”於是他出兵駐紮在磐河,將要報復袁紹。
袁紹聽聞很害怕,把自已佩戴的渤海太守印綬送給公孫瓚的族弟公孫範,派他去郡裡,想結交他為外援。
公孫範就用渤海的軍隊幫助公孫瓚,打敗了青州、徐州的黃巾軍,兵力越來越強大,進軍界橋。
公孫瓚任命嚴綱為冀州刺史,田楷為青州刺史,單經為兗州刺史,設定了各郡縣,雖然只是自封沒有實權的官位,但是足以看出對袁紹的挑釁。
袁紹駐軍廣川,命令部將麴義率先與公孫瓚交戰,活捉了嚴綱,公孫瓚的軍隊敗退至渤海郡,與公孫範一同回到薊,在大城東南修築小城,與劉虞相近,雙方逐漸相互怨恨。
劉虞害怕公孫瓚作亂,就發兵襲擊公孫瓚,劉虞被公孫瓚打敗,出逃居庸關,公孫瓚攻克居庸關,活捉劉虞,把他押解回薊。
正趕上董卓被殺,皇帝派使者段訓加封劉虞采邑,讓他都督六個州,公孫瓚則升任前將軍,封易侯。
公孫瓚誣陷劉虞想要稱帝,脅迫段訓將劉虞斬首,公孫瓚上表舉薦段訓為幽州刺史,公孫瓚從此驕傲起來,只記著別人的過失,卻忘記了別人的好處,有很多人被他殘害。