徐庶也曾經年少輕狂,那時候他並不是儒生形象,跟李白少年時期很相似,像個遊俠兒,為朋友兩肋插刀,打架鬥毆。還曾經吃過官司,差點丟了性命。後來徐庶改名換姓,不再舞刀弄槍,開始學習文化知識也就是儒家思想,並且很用心。漸漸地,徐庶就成了人們熟悉的那種很有學問的樣子。
董卓亂朝綱的時候,京師動盪,民不聊生。徐庶為了避亂就搬到荊州居住。在荊州,他遇到諸葛亮,兩人一見如故,相談甚歡,關係很好。
後來,在劉備依附劉表駐紮新野的時候,徐庶投靠了劉備,不過他更改了姓名,叫做單福(事實上,徐庶本名叫做徐福,《三國演義》中將其寫作單福)。劉備對他很賞識,任命他為軍師。後來徐庶就將自己的好友推薦給劉備,此時距離他與諸葛亮相識已經過去了十五年。而劉備正是在徐庶的建議下,三顧茅廬,請來了對蜀漢起了重要作用的諸葛亮。
曹操攻打劉備於新野,派曹仁率大軍為前鋒,來勢洶洶,徐庶用計,用張飛跟趙雲大破曹仁前鋒,並將呂曠、呂翔斬殺。後來曹仁擺八門金鎖陣,徐庶很快看破陣中破綻,派遣趙雲率領五百軍破陣殺敗曹仁。曹仁不甘失敗,晚上來劫寨,又被徐庶算到,曹仁再次大敗。
然後徐庶設計奪取了樊城。
曹操聽說劉備任用徐庶取得一系列成功,讓他大受損失,於是就打起徐庶的注意。曹操帳下多謀士參謀,對於算計賺取別人這種事很擅長,於是程昱就給曹操出主意,先將徐庶的母親騙到許昌,然後模仿徐母筆跡給徐庶寫信,叫他來。
徐庶是個孝子,見了母親的信,自然心急如焚。劉備雖然捨不得徐庶,但他不忍心阻止徐庶探母。曹操把徐庶騙過去後,禮遇有加,也表現出很器重他的樣子,但是徐庶絲毫不為所動,而且雖然身在曹營,但卻心不在焉,表現平庸,再沒有非凡舉動。
即便如此,他還是在魏為官十數年。對於曹操來說,把徐庶賺來,他還真是賺了,即使徐庶什麼都不做,至少他再也不能為劉備效勞。自己少了個心腹大患,多了個幫手,豈不是一舉兩得?