武德二年(619年),当时活动于易州(治今河北省易县)的农民起义军首领宋金刚,拥有一万多人马,和魏刀儿相连结。魏刀儿为窦建德消灭,宋金刚率军救援魏刀儿,被窦建德打败,于是带领四千人马向西投奔刘武周。
刘武周得知宋金刚手下大将尉迟恭很快用兵,得到宋金刚投靠之后,非常高兴便将自己的妹妹刘氏嫁给宋金刚加以笼络,称宋金刚为宋王,将军事大权交给宋金刚,并将自己的财产分出一半送给宋金刚。
宋金刚也深加交结,休掉原来的妻子,娶了刘武周的妹妹。并趁机劝刘武周图谋晋阳(今山西省太原市),向南争夺天下。刘武周任命宋金刚为西南道大行台,让尉迟恭带领三万兵马攻取汾阳,刘武周率兵六万进攻寿阳、宋金刚自己率兵攻占交城。
李元吉只身逃回长安之后,山西守将姜宝谊率军赶到介休,在度索原(今山西省介休市东南介山下)扎营。宋金刚见姜宝谊大营依山而建,军中饮水多从山涧摄取,宋金刚让人切断唐军水源,导致军中缺水。姜宝谊想要移营靠近水源,宋金刚趁势进攻,于是姜宝谊大军溃败,宋金刚率军连夜追击,杀得唐军几乎全军覆没,守将姜宝谊也被尉迟恭生擒,至此晋州以北的城镇尽数陷落,唯独西河郡得以保存。
刘武周在击溃井陉唐军之后占据太原,随即派尉迟恭为先锋,宋金刚为主帅,进攻霍邑,击败霍邑唐军守将,宋金刚进逼绛州,攻陷龙门(今山西省河津市)。
十月,宋金刚进攻并攻克浍州(治翼城,今属山西省),军势很猛。唐军守将兵力匮乏,只得不断地派出使者,催促虞、泰二州的居民进入城堡,并焚毁他们的积蓄。百姓见家园被烧,心中不满,夏县(今山西省夏县)居民吕崇茂聚众自称魏王,响应刘武周,守军去讨伐,却被吕崇茂打败。
十一月,秦王李世民乘黄河封冻之时,率兵从龙门渡过黄河,驻扎在柏壁,与宋金刚对峙。此时黄河以东的州县均遭到宋金刚军队的洗劫,粮食匮乏,百姓惧怕宋金刚军队的袭扰,聚居在城堡中,宋金刚军队征集不到东西,军队缺粮。
李世民以大唐秦王的身份晓谕百姓归唐,百姓听说是秦王李世民率军前来,无不前来归顺,由近及远,前来的人日益增加,然后唐军逐渐征收到粮食,军粮因此充足。于是李世民下令军队坚壁清野,不与宋金刚交战,只命非主力部队的将领伺机侵袭宋金刚军粮道,宋金刚的大军因为缺少粮草,军心日益萎靡不振。
十二月,唐朝永安王李孝基采纳于筠等人建议,进攻吕崇茂。吕崇茂与李孝基军激战数日,未能将李孝基军击溃,不得不向宋金刚求援。宋金刚收到吕崇茂的求援,随即派遣手下将领尉迟恭、寻相带兵赶到夏县,和吕崇茂一起夹击李孝基军,李孝基军腹背受敌,被尉迟恭等人杀得大败,李孝基、独孤怀恩、于筠、唐俭、刘世让都被宋金刚俘虏。