宣帝多次下詔征召賢能,安置流民,減免田賦,賑濟災民,還一再派人到各地考察吏治,查處不法官員,並親自審核疑案大案。由於他來自民間,“知民事之艱難”,了解“間裏奸邪,吏治得失”,所以注重對地方官的任命和考核,對成績突出的官員及時進行獎勵和提拔。魏相、丙吉、王成、黃霸、朱邑、龔遂、召信臣等都是當時的名相良吏,趙廣漢、韓延壽、尹翁歸、嚴延年、張敞等也都稱職,“漢世良吏,以是(宣帝時)為盛”。宣帝對匈奴采取了正確的政策,沒有乘人之危,而是以隆重的禮節和豐厚的資助接納呼韓邪單於的歸附,並幫助匈奴內部恢複秩序,保持匈奴基本獨立的地位,使漢匈邊界維持了60年的和平安寧。宣帝時期實現了西漢的中興,成為與“文景之治”相似的又一個恢複和發展階段。但宣帝對外戚的過度封賞,對宦官的任用,都為此後外戚和宦官勢力的膨脹留下了伏筆。
即位的元帝(劉奭,前49~前33年在位)改變了宣帝“王霸道雜用”的策略,重用名儒學者,雖有寬政減刑、治國安邦的願望,卻缺乏切實可行的政策,更沒有打擊地主豪強的勢力,土地兼並更加嚴重,政治日益腐敗。成帝(劉驁,前33~前7年在位)時外戚王氏開始控製朝政,政治黑暗,吏治腐敗,成帝軟弱無能,隻能聽任外戚專政。哀帝(劉欣,前7~前1年)即位後,傅、丁二家外戚取代王氏,外戚專政的情況依然如故。哀帝重用嬖臣董賢,賞賜無度,誅殺規勸的大臣。哀帝死後,王氏外戚重新執政,9歲的平帝即位,政權實際已由王莽執掌。公元5年平帝死,據說是喝了王莽獻上的椒酒。次年,王莽立二歲的孺子嬰為皇太子,自己攝政(稱居攝)。至公元8年,王莽即皇帝位,國號新,西漢亡。
新朝的建立沒有給社會帶來生機,王莽的改製接連失敗,對邊疆少數民族的軍事行動和嚴重的自然災害更加速了新朝的覆滅。
最先對王莽政權發動反抗的,是受害深重的北方邊民。不久,各地相繼出現農民暴動。天鳳四年(17年),荊州饑荒,新市(今湖北京山縣東北)人王匡、王鳳聚集數百人於綠林山(今湖北大洪山)中,各地流民紛紛投奔,數月間達到七八千人,被稱為綠林軍。地皇二年(21年),荊州牧率軍鎮壓,綠林軍出山迎擊獲勝,部眾擴大到五萬餘人。次年綠林山瘟疫流行,綠林軍分路出山,一支西入南郡(治今湖北荊州市江陵),稱下江兵;一支北上南陽(治今河南南陽市),稱新市兵。平林人陳牧等率眾響應,稱平林軍,其中有西漢宗室劉玄。宗室劉績、劉秀兄弟也組成舂陵軍,與下江兵合作。綠林軍為擴大影響,擁立劉玄為皇帝,恢複漢朝,稱更始元年(23年)。王莽派數十萬大軍阻擊,前鋒十多萬人圍綠林軍於昆陽(今河南葉縣)。劉秀說服眾將堅守,自己突圍求援,其後以三千援兵擊斃敵軍主帥。與城中合兵,取得大勝。昆陽大捷後,綠林軍分兵兩路,一路北上攻克洛陽,一路西入武關(今陝西商南縣西南),直取長安。王莽危急,率群臣至南郊,告天大哭,有數千儒生、百姓因哭得悲哀而被封官。九月,更始軍入長安,王莽逃至宮內的漸台,被暴動的民眾殺死。公元24年初,更始帝由洛陽遷都長安。
另一支起義軍赤眉軍是由琅琊(今山東東南一帶)人樊崇發動的,最初在莒縣(今屬山東莒)起義,在泰山、北海(今山東境內)一帶活動。地皇三年(22年),王莽派廉丹等率十多萬軍隊鎮壓,為在戰鬥中與敵軍相區別,他們將眉毛塗紅,因而被稱為赤眉軍。赤眉軍在成昌(今山東東平縣境)擊敗王莽軍,殺廉丹,勢力大振。更始帝在洛陽時,樊崇等曾接受了他的封號,但因受到排斥,又脫離了更始。當時赤眉軍部眾想返回故鄉,軍心不穩,為防止瓦解,樊崇等決定西攻長安。公元25年,赤眉軍在華陰(今陝西華陰市東)立漢宗室劉盆子為帝。而更始內部一片混亂,演變為兵變火拚。九月,赤眉軍攻入長安,劉玄等先後投降。
更始帝在洛陽時,派劉秀鎮慰河北。劉秀收編地主武裝,消滅農民起義軍和敵對力量,在河北建立基地,脫離了更始帝。在赤眉與更始廝殺之際,劉秀乘機遣部將攻城略地。公元25年六月,劉秀在部(今河北柏鄉縣北)南即皇帝位,改元建武,恢複漢朝,史稱東漢或後漢,劉秀死後被稱為世祖光武帝。同年十月,劉秀定都洛陽。