桓宣,譙國至縣人。祖父桓詡,做過義陽太守。父桓弼,官至冠軍長史。桓宣志在創業濟時,心地忠厚純正,為晉元帝丞相舍人。
當時北方塢主張平自稱豫州刺史,樊雅自號譙郡太守,各自佔據一城,擁有部眾數千人。晉元帝因桓宣忠厚講信用,又與張平、樊雅同州同裡,便改任桓宣為參軍,讓他去勸降張平、樊雅。張平、樊雅派軍主簿隨同桓宣到丞相府接受轄制,晉元帝封他們為四品將軍,令他們各率其部眾,防守北方邊地。南中郎將王含請桓宣做參軍。
不久,豫州刺史祖逖進駐蘆洲,派參軍殷砬前往張平、樊雅駐地。殷砬蔑視張平,看見他的住屋,說應改做馬棚,看見大鑊,想打破鑄成鐵器。張平說:「這是帝王大鑊,天下平定後正當用它,為何打破!」殷砬說:「足下能否保得住頭,竟吝惜大鑊呢?」張平大怒,就在座上斬殺了殷砬,率部固守城堡抗拒晉軍。一年有餘,祖逖北上攻佔張平駐地,殺掉張平,而樊雅依舊據有譙城。祖逖因為兵力不足,向王含求援,王含派桓宣領五百兵士支援祖逖。祖逖對桓宣說:「足下早先已勸降過張平、樊雅,他們相信足下守信義。如今再為我去勸降樊雅。樊雅若肯歸降,可繼續留用做官,豈止是免死而已!」桓宣又單槍匹馬帶領隨從二人直奔樊雅處,說:「祖逖正打算平定北寇,常要依靠足下為羽翼。先前殷砬輕薄無禮,大違祖逖的意願。現在如果足下願意和解,那麼忠名可立,富貴可保。如果還要一味固執,祖逖將赫然震怒派遣猛將攻城,憑足下烏合之眾,固守孤城,強寇窺伺於北方,朝廷大軍從南邊進攻,恐怕是萬無一全。請足下仔細考慮。」樊雅置辦酒席與桓宣結為朋友,派兒子隨桓宣來見祖逖。不幾天,樊雅便親自來拜訪祖逖,祖逖派樊雅回譙城撫慰其部從。樊雅的部眾都以曾多次辱罵祖逖,畏罪不敢歸降。樊雅只好又緊閉城門守城。祖逖率部攻城,又派桓宣入城勸說樊雅。樊雅便殺掉異己之人,開城出降。未過多久,石勒的部將率兵圍攻譙城,王含又派桓宣率兵救援祖逖,未到譙城而賊兵已退。祖逖留下桓宣討伐那些未歸順者,皆被攻破。改任桓宣為譙國內史。
祖約放棄譙城南撤,桓宣用書信勸諫,祖約不從,因此石勒便佔領了陳留。及至祖約與蘇峻共叛朝廷,桓宣對祖智說:「如今強胡未滅,正該齊心合力征討進剿,而竟然與蘇峻一道反叛朝廷,這豈能長久!足下若想做英雄豪傑,為何不協助朝廷討伐蘇峻呢?只有如此才可揚威於天下。」祖智等不予理睬。桓宣打算勸阻祖約,派兒子桓戎告白祖約請求會見。祖約知道桓宣必將勸阻舉兵,因而拒絕接見桓宣。桓宣於是抗拒祖約,與祖氏分道揚鑣。邵陵人陳光率部落數百家歸降桓宣,桓宣對他們予以安撫。祖約返回歷陽,桓宣率部曲數千家打算南奔尋陽,在馬頭山紮下營寨。適值祖煥準備襲擊湓口,陶侃派毛寶救援湓口。祖煥派兵攻打桓宣,桓宣派桓戎向毛寶求救。毛寶率兵攻擊祖煥,打敗了祖煥,桓宣便投奔了溫嶠。溫嶠以桓戎為參軍。叛軍平定後,桓宣留居武昌,桓戎又做了劉胤的參軍。郭默殺劉胤,又以桓戎為參軍。
陶侃討伐郭默,郭默派桓戎向桓宣求救,桓宣假裝答應。西陽太守鄧岳、武昌太守劉詡都懷疑桓宣與郭默串通一氣。豫州西曹王隨說:「桓宣尚且不與祖約同流,為何要與郭默同流呢?」鄧岳、劉詡便派王隨前往桓宣府第以觀動靜。王隨對桓宣說:「明公雖無如此居心,但難以剖白,只有請明公將桓戎交付給我王隨才能消除眾人疑心。」桓宣便派桓戎與王隨一道去迎接陶侃。陶侃召桓戎為屬官,升桓宣為武昌太守。不久遷為監沔中軍事、南中郎將、江夏相。
石勒後趙的荊州刺史郭敬戍守襄陽,陶侃派兒子平西參軍陶斌與桓宣一道攻打樊城,奪取了樊城。竟陵太守李陽又攻佔了新野。郭敬畏懼,棄城逃走。桓宣與李陽便平定了襄陽。陶侃令桓宣鎮守襄陽,將其淮南部曲立為義成郡。桓宣招集安撫那些新近歸附的百姓,勉勵他們從事農耕蠶桑,減輕刑罰,精簡禮儀,有時在乘坐的軺車上裝載鋤頭耒耜,有時親自到田間裡耕種收穫。十餘年間,石季龍兩次派遣騎兵攻打襄陽,桓宣能獲得民心,常以弱小之勢抗擊強敵的侵略,論者以為他是僅次於祖逖、周訪的戰將。
陶侃正準備派桓宣北伐中原,不幸碰上陶侃病逝。後來庾亮為荊州刺史,籌劃北伐,以桓宣為都督沔北前鋒征討軍事、平北將軍、司州刺史、假節,鎮守襄陽。石季龍派七千騎兵渡過沔水攻打桓宣,庾亮派司馬王愆期、輔國將軍毛寶率兵增援桓宣。賊兵從三面挖地道攻城,桓宣招募精壯勇敢之士,出其不意,殺傷數百賊兵,繳獲大量披甲戰馬,賊兵撤圍退走。過了一個時期,桓宣派精銳步騎解救了南陽等郡被賊兵扣押的百姓八千餘人回歸東晉。庾翼代替庾亮後,準備集中全國兵力舉行北伐,任命桓宣為都督司梁雍三州荊州之南陽襄陽新野南鄉四郡軍事、梁州刺史、持節,將軍封號不變。桓宣以先後所建戰功,被封為竟陵縣男。
桓宣久鎮襄陽,安撫本地鄉民及北方僑民,頗有政績。庾翼遷鎮襄陽,命令桓宣進討石季龍部將李羆,大軍駐紮丹水,為賊兵所敗。庾翼大怒,貶桓宣為建威將軍,命令桓宣移兵戍守峴山。桓宣名望與職權都受到損失,加上年老疾病困擾不堪,其時南蠻校尉王愆期鎮守江陵,以身患疾病請求派人代替其職,庾翼任命桓宣為鎮南將軍、南郡太守,代替王愆期。桓宣深感不得志,未到任,怨憤而死。朝廷追贈為鎮南將軍。桓戎官至新野太守。