三年（前71年），母亲皇后许平君被霍成君的母亲显毒死。地节三年（前67年）八岁的刘奭被宣帝立为太子。继母霍成君则试图毒死他，但未能成功。因为他曾经向父亲宣帝进言“持刑太深，宜用儒生”，而不被宣帝所喜爱。宣帝甚至预言“乱我家者，必太子也”，但顾念他是发妻许平君的儿子而没有褫夺他的太子之位。宣帝病死后继位，第二年（前48年）改年号为“初元”，在位时期“崇尚儒术”，多次出兵击溃匈奴。建昭三年（前36年），汉将甘延寿、陈汤诛郅支单于于康居（郅支之战）。至此，唯一反汉的匈奴单于被消灭了。汉匈百年大战于此告一段落。