十一月十五日,劉雲芳率領虎威衛萬餘人先行趕到雁門關。
十七日,劉雲芳指揮各軍包圍了善陽城。
隋軍各部集合,約有兩萬餘人,是劉武周所部的三倍之眾。
此時蹦躂了一個多月的劉武周終於發現自己陷入了絕境之中。劉武周有野心,也有能力,但並無與隋軍主力決戰的底氣。
劉武周雖然已經派人去聯絡突厥的新任可汗處羅可汗,但突厥人根本不敢前來。
劉武周面對城外重重隋軍,急得是抓耳撓腮。他常在邊關,自然知曉城外諸軍的實力,而善陽城外無援兵,且今年馬邑郡歉收,善陽城中的糧食連一個月都堅持不了,繼續打下去,只有城破一個可能。
這時其妹夫苑君璋建議劉武周,善陽城已經不可守,可突圍至突厥,再作計較。
劉武周也是猶豫,給胡人做狗,是那麼容易的嗎?而且突厥也是黃明遠的手下敗將,投奔突厥有用嗎?
正當劉武周猶豫不決,其部將高滿政突然開啟城門,向城外隋軍投降。高滿政全家皆死於突厥之手,與突厥有血仇,如何願意投降突厥。他便勸劉武周向隋軍投降,憑這數千將士和一座善陽城,也能保得性命,但劉武周不願意。
馬邑困於兵禍,人心厭亂,高滿政利用人心所向,投降了隋軍。
此時城門開啟,劉雲芳遂指揮諸軍入城。
劉武周在城中聽聞此訊息大驚,嚇得魂飛魄散,連忙率領親信突圍。
而守衛城中的諸將尋相、張萬歲等人皆投降了隋軍。
劉武周帶著黃子英、苑君璋等人不到千人一路向北,被範文林率軍堵在了臘河谷(今山西省朔州市東北洪濤山南)。
劉武周進退不能,被隋軍盡滅於此。
在歷史上席捲整個河東,給李唐帶來最多敗仗的一代梟雄,就這麼死在臘河谷。
討平劉武周之後,黃明遠便下令,析馬邑郡、雁門郡北部,於恆安鎮置雲中郡,領雲內、善無、高柳(今山西省陽高縣)三縣。
同時又設代北都督府,節制雲中、雁門、馬邑、樓煩四郡軍事,轄兵兩萬兩千人。
以範文林為代北都督兼領雲中郡太守;
崔民幹為馬邑郡太守;
韓元建為樓煩郡太守;
而李子仁統兵五千人,隨劉雲芳南下。