徐宣起初為躲避戰亂來到江東,後來因為拒絕孫策任命而回到廣陵郡。在廣陵郡與陳矯一起在州郡任職,二人齊名但等私下關係並不好,廣陵太守陳登卻對二人都非常器重,而徐宣亦與陳登一心投效曹操。後來海西和淮浦二縣縣民作亂,曹操派遣督軍扈質討伐,但他卻以自己士兵太少而不前進,徐宣於是潛入軍中,責罵扈質,並且向他闡述形勢,扈質終於進攻並討平了叛亂。後來曹操先後任命徐宣為司空掾屬、東緡令、發乾令,後被提拔為齊郡太守,之後又到許都任門下督,不久便跟隨曹操領軍到壽春。
建安十六年(211年),馬超、韓遂在關中叛亂,大軍西征,曹操對屬下官員說:「現在應該遠征馬超,但此地也尚未安定,需要一位清正無私有大德的人統兵鎮守。」於是任命徐宣為左護軍,留下來統領諸軍。
大軍返回後,徐宣被任命為丞相東曹掾,後又出任魏郡太守。
社稷之臣
建安二十五年(220年),曹操在洛陽逝世,群臣都到大殿哀悼,這時有人建議將各城的守將都換成沛國和譙縣(曹操的籍貫)的人,徐宣嚴詞反對:「現在遠近統一,人人都忠誠守節,為什麼要將守將都換成沛國和譙縣人,而傷在當地長期守戍將領的心?」」曹丕聽了這話,讚歎道:「這就是人們常說的那種社稷之臣啊!」
曹丕稱帝后,任為徐宣為御史中丞,賜爵關內侯,先後歷任城門校尉、司隸校尉、散騎常侍和尚書。
徐宣隨從曹丕去廣陵,大軍乘船,忽遇大風浪,曹丕的船直往回倒,徐宣在後面的船上又擔心又著急,驅船凌波踏浪前來護衛,群臣沒有比他先的。曹丕被他的勇敢豪壯所感動,提拔他為尚書。
深受信任
黃初七年(226年),曹丕駕崩,曹叡繼位,封徐宣為津陽亭侯,食邑二百戶。中領軍桓范推薦徐宣說:「臣下聽說帝王用人,根據不同的情況任用不同的人才;爭奪天下的時候,以是否有謀略做先決條件;平定天下以後,以是否忠義做首要標準。因此晉文公採用舅犯的計策敗楚人於城濮,卻優先獎勵了批評舅犯之策是『竭澤而漁』的雍季;高祖劉邦生前重用足智多謀的陳平,臨死卻把善後的事托付給周勃。我看尚書徐宣,品行忠厚,秉性剛直,清雅獨立,不拘世俗,且剛勁堅強,有扶保社稷的大氣節,歷任州郡主官,在位時都很稱職。如今朝廷僕射之職空缺,我覺得這個責任重大的關鍵職位,沒有比徐宣更合適的人選了。」
曹叡於是任命徐宣為左僕射,當了尚書令的副手,以後又被任命為侍中光祿大夫。一次,曹叡要去許昌,命徐宣留在京城總理政務。曹叡返回後,主管文書的官員把奏章等呈遞上來,曹叡說道:「難道我處理和左僕射處理有什麼不同嗎?」竟看也不看一眼。主管製作皇室兵器玩物的尚方令犯了過錯,徐宣上疏給曹叡,說給尚方令的判罰太重了,又勸阻曹叡不要大建宮殿窮盡民力,曹叡都親筆下詔嘉許並採納了他的意見。
去世
後來徐宣上書說:「七十歲就該舉行『懸車』辭官家居的儀式,我今年已經六十八歲,可以離開了。」於是以身體有病為理由,堅決請求辭去官職,曹叡卻始終沒有批准。
青龍四年(236年),徐宣去世。臨死時囑咐家人,入殮時給他穿上粗布衣服就可以了。曹叡下詔說:「徐宣內直外方,歷任三朝,公正無私,高風亮節,有托孤寄命的節操,可以說是國之柱石。我屢次想提升他主管尚書檯,還沒來得及上任,可惜他就撒手離去了!現追贈他為車騎將軍,用對待公爵一樣的禮節安葬他。」又謚封他為貞侯。其子徐欽繼承了爵位。