漢武帝聽說西遷的大月氏有報復匈奴之意,就派人出使大月氏,聯絡他們東西夾攻匈奴。漢中人張騫以郎應募,建元二年(前139年),張騫率領100余人向西域進發。途中被匈奴俘獲,滯留了10年,終於尋機逃脫,西行數十日到達大宛。這時大月氏已不想攻打匈奴而西遷了,張騫沒有達到目的,在西域呆了壹年多東返,途中又被匈奴扣留了壹年多,後適逢匈奴單於死,國內大亂,元溯三年,張騫趁機回到大漢,受到漢武帝的熱情接待,後被封為太中大夫[8] 。此次西行前後達10余年,雖未達到目的,但獲得了大量西域的資料,司馬遷稱張騫此行為“鑿空”。
張騫歸國後,漢武帝曾遣使探求通過羅馬開辟壹條不經匈奴而到大夏的交通線,但是沒有成功。後來,漢軍打敗匈奴,取得了河西走廊地區,打通了西漢與西域之間的通道。霍去病在祁連山大破匈奴後,張騫建議聯絡西域強國烏孫,以斷匈奴右臂。元狩四年,張騫再次出使西域,目的是招引烏孫回河西故地,並與西域各國聯系。張騫到烏孫,未達目的,於公元前115年偕同烏孫使者返抵長安,被張騫派往西域其他國家的副使也陸續回國。烏孫使者見大漢人眾富厚,回國歸報後烏孫漸漸與大漢交往密切,其後數年,張騫通使大夏,從此,西漢與西北諸國開始聯系頻繁起來,張騫鑿空西域,後世稱其為博望侯。
但是,西域諸國仍未完全擺脫匈奴的控制,樓蘭、車師等國在匈奴的策動下,經常劫掠西漢派往西域的使臣和商隊。為了確保西域通道,元封三年,王劇率騎兵擊破樓蘭,趙破奴率軍擊破車師。元封六年,西漢又與烏孫王和親,企圖聯合協迫匈奴。同時為了打破匈奴對大宛的控制並取得大宛的汗血馬,漢武帝派李廣利領兵數次進攻大宛(今烏茲別克斯坦),在付出沈重代價後。攻破大宛都城,使西漢在西域的聲威大振,確保了西域通道的安全。通往西域的“絲綢之路”,至此暢通。