1229年太宗窝阔台即位后,遣克烈亦惕人速哥出使金国,劝谕金哀宗向蒙古纳"岁贡",遭金哀宗拒绝。1230年七月,窝阔台汗命斡勒答合儿豁儿赤留守和林,亲率大军伐金。由雁门关入据黄河以东地区,攻占了天城等城堡,然后西渡黄河与陕西蒙古军会合,攻打凤翔府。次年春,蒙古军攻取凤翔、洛阳及河中诸城。潼关以西、黄河以北尽为蒙古所据。窝阔台汗为了一举灭金,于1231年夏,在官山九十九泉(今灰腾梁,集宁市北)与诸王商议攻金之策。托雷向窝阔台提议说:"金主迁汴,所恃者黄河、潼关之险尔。若出宝鸡,入汉中,不一月可达唐、邓。金人闻之,宁不谓我师从天而乎。"(《元史》卷115《睿宗传》)。窝阔台汗同意托雷的意见,决定分三路进攻。窝阔台汗统中路军,由碗子城(太行山之隘)南下渡河,由洛阳进攻;斡惕赤斤那颜统左路军,由济南进攻;托雷统右路军自凤翔渡渭水,过宝鸡,过宋境,沿汉水而下,达唐、邓二州。期以次年春,三路军会师汴京。
同年十月,窝阔台汗围攻河中府城(今山西永济西),经两月战斗,于十二月克之。次年正月,由白坡渡黄河,攻郑州,守将马伯坚降,郑州陷落。金黄河防线瓦解。
托雷出宝鸡,遣使南宋,要求借道并出兵援助。南宋杀死使者,引起蒙、宋交战。托雷分兵攻宋诸城堡,入汉中,进袭四川,陷阆州(今四川阆中)而还。蒙古军进而由金州(今陕西安康)取房州,前锋3000余人在武当山破金兵10余万,取均州,渡汉水,于1231年末进入邓州境内,金大将合达以20万大军设伏于邓州西之禹山,据险以待,而托雷兵不足4万人,十二月以轻骑与金兵战于禹山,佯败诱敌,金兵则按兵不动。托雷又举火夜行,直奔邓州城,合达急忙回兵保邓州,使托雷攻城三日不能克,只好向北攻打汴京。合达统15万大军尾追不舍。托雷令蒙古军:"毋令彼得休息,宜夜鼓噪以扰之",遂一路袭击金兵。1232年正月,金兵到达钧州(今河南禹县),托雷派抄思统领精锐部队予以阻击,金兵至钧州南三峰山,被抄思部阻截。当时恰值天下大雨雪,金人僵冻无人色。窝阔台又派来1万名援军前来会合。托雷下令发起进攻。金15万大军被"追奔数十里,流血被道,资仗委积,金之精锐尽于此矣"(《元史》卷115《睿宗传》)。合达走钧州,大将蒲阿被蒙军俘获。
三峰山战役后,窝阔台汗至三峰山组织蒙古军继续进攻,先后占领钧、许等河南10余州。金潼关守将李平来降,潼关防线亦破。三月,速不台围攻汴京,金哀宗遣其弟曹王讹可入质。四月,窝阔台汗出居庸关,避暑于官山九十九泉,留速不台以3万兵卒守河南。
同年七月,蒙古遣唐庆入汴京劝金哀宗投降。金将领蔡元杀死唐庆,于是蒙古军决定诉诸武力,不再议和。此时的汴京已粮尽援绝,1233年正月,金哀宗出奔归德(今河南商丘),速不台围攻汴京,金西面元帅崔立杀死留守完颜奴申、完颜习捏阿布,献城投降,并将两位王后、两位宗王及500名宗室贵族带至蒙古军营。速不台斩杀宗王及其宗室贵族,把二位王后遣送至和林。四月入据汴京。
金哀宗逃到归德,受蒙古军围攻;奔蔡州(今河南汝南),又遭塔察儿围攻。蒙古再遣使南宋出兵会攻蔡州,答应灭掉金国后,将蔡州以南领地归宋所有。十一月,宋鄂州江陵府副都统孟珙率襄阳兵两万,运粮30万石与蒙古军合攻。1234年正月,金哀宗传位于完颜承麟,自缢身亡。蒙、宋联军入城,末帝死于乱军中,金亡。