在贝加尔湖,苏武牧羊达十九年之久,十九年来,当初下了命令囚禁他的匈奴单于已去世了,就是在苏武的国家,老皇帝也死了,老皇帝的儿子继任皇位。这时候,新单于执行与汉朝和好的政策,汉昭帝立即派使臣把苏武接回自己的国家。
后来,汉朝使者到了匈奴地区,终于得知苏武依然健在,于是扬言说,汉朝的天子在上林苑中射到一只大雁,雁的脚上系着帛书,帛书中清楚地写着苏武在北方的沼泽之中。单于只好把苏武等九人送还。
在昭帝始元六年,即公元前81年,苏武终于回到了长安。第二年,上官桀、上官安父子和桑弘羊被人控告谋反,苏武和上官父子、桑弘羊原来关系很好,加上他的儿子也参与其中,苏武被罢官。昭帝死后,苏武因为参与了拥立汉宣帝,被赐爵关内侯。