公元1696年,康熙帝第二次亲征,分三路出击:黑龙江将军萨布素从东路进兵;大将军费杨古率陕西,甘肃的兵,从西路出兵,截击噶尔丹的后路;康熙帝亲自带中路军,从独石口出发。三路大军约定时期夹攻。康熙帝的中路军到了科图,遇到了敌军前锋,但东西两路还没有到达,这时候,有人传说沙俄将要出兵帮助噶尔丹。随行的一些大臣就有点害怕起来,劝康熙帝班师回北京。康熙帝气愤地说:“我这次出征,没有见到叛贼就退兵,怎么向天下人交代;再说,我中路一退,叛军全力对付西路,西路不是危险了吗?”当下,康熙帝决定继续进兵克鲁伦河,并且派使者去见噶尔丹,告诉他康熙帝亲征的消息。噶尔丹在山头一望,见到康熙帝黄旗飘扬,军容整齐,连夜拔营撤退。康熙帝一面派兵追击,一面赶快通知西路军大将费扬古,要他们在半路上截击。噶尔丹带兵奔走了五天五夜,到了昭莫多(在今蒙古人民共和国乌兰巴托东南)正好遇到费扬古军。昭莫多原是一座大树林,前面有一个开阔地带,历来是漠北的战场。费扬古按照康熙帝的部署,在小山的树林茂密地方设下埋伏,先派先锋四百人诱战,边战边退,把叛军引到预先埋伏的地方,清军先下马步战,听到号角声起,就一跃上马,占据了出顶。叛军向山顶进攻,清军从山顶放箭发枪,展开了一场激战。费扬古又派出一支人马在山下袭击叛军辎重,前后夹击。叛军死的死,降的降。最后,噶尔丹只带了几十名骑兵脱逃。经过两次大战,噶尔丹判乱集团土崩瓦解,康熙帝要噶尔丹投降,但是噶尔丹继续顽抗。隔了一年,康熙帝又带兵渡过黄河亲征。这时候,噶尔丹原来的根据地伊犁已经被他侄儿策妄阿那布坦占领;他的左右亲信听说清军来到,也纷纷投降,愿意做清军的向导。噶尔丹走投无路,就服毒自杀。打那以后,清政府重新控制了阿尔泰山以东的漠北蒙古,给当地蒙古贵族各种封号和官职。清政府又在乌里雅苏台设立将军,统辖漠北蒙古。后来,噶尔丹的侄儿策妄阿那布坦攻占西藏。公元1720年,康熙帝又派兵远征西藏,驱逐了策妄阿那布坦,护送达赖喇嘛六世进藏。以后,清政府又在拉萨设置驻藏大臣,代表中央政府同达赖、班禅共同管理西藏。