那时,蒙古族分为漠面蒙古、漠北蒙古和漠西蒙古三个部分。除了漠南蒙古已归属清朝外,其他两部也都向清朝臣服了。准噶尔部是漠西蒙古的一支,本来在伊犁一带过着游牧生活。自从噶尔丹统治准噶尔部以后,他先兼并了漠西蒙古的其他部落,又向东进攻漠北蒙古。漠北蒙古人逃到漠南,请求清朝政府保护。康熙帝派使者到噶尔丹那里,叫他把侵占的地方还给漠北蒙古。噶尔丹仪仗沙俄撑腰,不但不肯退兵,还大举进犯漠南。
康熙帝决定亲征噶尔丹。1690年,康熙帝兵分两路:左路由抚远大将军福全率领,从古北口出兵;右路由安北大将军常宁率领,从喜峰口出兵,康熙帝亲自带兵在后面坐镇。七月十四日,康熙帝离开北京,不料途中突患感冒,只好取消亲征计划。
七月十五日,气焰嚣张的噶尔丹向清军宣战,屯兵于西巴尔台(今内蒙古克什克腾旗土河),然后又逐步南下,占据了距京师仅有350千米的乌兰布通。噶尔丹把几万骑兵集中在大红山下,后面有树林掩护,前面又有河流阻挡。他把上万只骆驼缚住四脚放倒在地,驼背上加上箱子,用湿毡毯裹住,摆成长长的一个驼城,叛军就在那箱垛中间身箭放枪,阻止清军进攻。
噶尔丹还派使者向清军提出交出他们的仇人的要求。康熙帝命令福全反击。八月一日,清军向乌半布通推进,向噶尔丹大军发起猛攻。清军用火炮火枪对准驼城的一段集中轰击。驼城被打开了缺口。清军的步兵骑兵一起冲杀过去,福全又派兵绕出山后夹击,把叛军杀得七零八落,噶尔丹乘夜逃跑。
噶尔丹回到漠北,一面佯装向清朝政府表示屈服,一面在暗地里重新招兵买马,图谋东山再起。康熙三十三年(1694年),康熙帝约噶尔丹会见,订立盟约。噶尔丹不但不来,还派人到漠南煽动叛乱。
康熙三十四年(1695年),噶尔丹又燃叛乱战火,率领骑兵3万,向漠南大举进攻。
康熙三十五年(1696年),康熙帝决定再次御驾亲征,分三路出击噶尔丹:黑龙江将军萨布素从东路进兵;大将军费扬古率陕西、甘肃军兵从西路出兵,拦截噶尔丹的后路;康熙帝亲自带中路军,从独石口迎击噶尔丹大军。
康熙帝的中路军到了科图,遇到了敌军前锋,但东西两路还没有到达。这时候,有人传言沙俄要出兵帮助噶尔丹。随行的一些大臣害怕起来,劝康熙帝退兵。康熙帝气愤地说:“我这次出征,还没有见到叛贼就退兵,怎么向天下人交代?再说,我中路一退,叛军全力对付西路,西路不是更危险了吗?”
康熙帝决心已定,继续进兵克鲁伦河,并且派使者去见噶尔丹,告诉他康熙帝亲征的消息。噶尔丹在山头望见清军黄旗飘扬,军容整齐,便连夜拔营逃走了。康熙帝一面派兵追击,一面派快马通知西路军大将费扬古,让他在半路了截击。
噶尔丹带兵奔走了五天五夜,到了昭莫多(在今蒙古人民共和国乌兰巴托东南),正好与费扬古军相遇。费扬古在树林茂密的地方设下埋伏,然后派先锋把叛军引到预先埋伏的地方,叛军一到,便前后夹击。叛军死的死,降的降。最后,噶尔丹只带了几十名骑兵逃走了。清军大获全胜。
昭莫多之战后,噶尔丹流窜于塔米尔河流域。为了彻底消灭噶尔丹的势力,康熙帝采取收服降众、断绝噶尔丹外援的策略,彻底地孤立了噶尔丹。噶尔丹之侄策妄阿拉布坦也遣使入朝,接受了清朝的册封,噶尔丹已处于四面楚歌的境地,但他顽固不化,拒不接受清朝廷的招抚。
康熙三十六年(1697年)二月六日,康熙帝第三次率兵亲征噶尔丹。出京城,经过山西大同、陕北府谷、神木、榆林等地,三月二十六日康熙大军抵达宁夏。这时,噶尔丹原来的根据地伊犁已经被他侄儿策妄阿拉布坦占领;他的左右亲信听说清军来到,也纷纷投降,愿意做清军的向导。噶尔丹走投无路,服毒自杀。五月十六日,康熙帝胜利回京。
从那以后,清政府重新控制了阿尔泰山以东的漠北蒙古,分封了当地蒙古贵族称号和官职。随后,又在乌里雅苏台设立将军,统辖漠北蒙古。