张骞应募任使者,于建元二年出陇西,经匈奴,被俘。在匈奴10年余,娶妻生子,但始终秉持汉节。后逃脱,西行至大宛,经康居,抵达大月氏,再至大夏,停留了一年多才返回。在归途中,张骞改从南道,依傍南山,企图避免被匈奴发现,但仍为匈奴所得,又被拘留一年多。元朔三年(前126),匈奴内乱,张骞乘机逃回汉朝,向汉武帝详细报告了西域情况,武帝授以太中大夫。