清朝时蒙古分为漠南蒙古、漠北蒙古和漠西蒙古三个部分。除了漠南蒙古早已归属清朝外,其他两部也都臣服了清朝。准噶尔是漠西蒙古的一支,本来在伊犁一带过游牧生活。自从噶尔丹统治准噶尔部以后,他野心勃勃,先兼并了漠西蒙古的其他部落,又向东进攻漠北蒙古。漠北蒙古抵抗一阵失败了,几十万的漠北蒙古人逃到漠南,请求清朝政府保护。康熙派使者到噶尔丹那里,要求他把侵占的地方还给漠北蒙古。噶尔丹自以为有沙俄撑腰,十分骄横,不但不肯退兵,还以追击漠北蒙古为名,大举进犯漠南。
由于形势紧急,康熙召集大臣宣布亲征噶尔丹。他认为噶尔丹气势汹汹,野心不小,既然打进来,非反击不可。康熙二十九年(公元1690年),康熙分兵两路:左路由抚远大将军福全率领,出古北口;右路由安北大将军常宁率领,出喜峰口,康熙亲自带兵在后面指挥。
右路清军先接触到噶尔丹军,吃了败仗。噶尔丹长驱直入,一直打到离北京只有700里的乌兰布通(今内蒙古昭乌达盟克什克腾旗)。噶尔丹得意扬扬,还派使者向清军要求交出他们的仇人。
康熙命令左军统帅福全反击。噶尔丹把几万骑兵集中在大红山下,后面有树林掩护,前面又有河流阻挡。他把上万只骆驼,缚住四脚躺在地上,驼背上加上箱子,用湿毡毯裹住,摆成长长的一个驼城。他的军队就在那箱垛中间射箭放枪,阻止清军进攻。
清军用火炮火枪对准驼城的一段集中轰击,驼城被打开了缺口。清军的步兵骑兵一起冲杀过去,福全又派兵绕到山后夹击,把叛军杀得七零八落,纷纷丢了营寨逃走。
噶尔丹一看形势不利,派了个喇嘛到清营求和。福全一面停止追击,一面派人向康熙请示。康熙下令说:“快进军追击!别中了贼人的诡计。”果然,噶尔丹求和只是缓兵之计,等清军奉命追击的时候,噶尔丹已经带了残兵逃到漠北去了。
噶尔丹回到漠北,表面向清朝政府表示屈服,暗地里重新招兵买马。康熙三十三年(公元1694年),康熙约噶尔丹会见,订立盟约。噶尔丹不但不来,还暗地派人到漠南煽动叛乱。他扬言他们已经向沙俄政府借到鸟枪兵6万,将大举进攻。
公元1696年,康熙帝第二次亲征,分三路出击:黑龙江将军萨布素从东路进兵;大将军费扬古率陕西、甘肃的兵从西路出兵,截击噶尔丹的后路;康熙亲自带中路军从独石口出发。三路大军约定时间夹攻。
康熙的中路军到了科图,遇到了敌军前锋,但东西两路还没有到达,这时候,有人传说沙俄将要出兵帮助噶尔丹。随行的一些大臣就有点害怕起来,劝康熙班师回北京。康熙气愤地说:“朕这次出征,没有见到叛贼就退兵,怎么向天下人交代;再说,朕中路一退,叛军全力对付西路,西路不是危险了吗?”
当下,康熙决定继续进兵克鲁伦河,并且派使者去见噶尔丹,告诉他康熙亲征的消息。噶尔丹在山头一望,见到清军黄旗飘扬,军容整齐,连夜拔营撤退。
康熙一面派兵追击,一面赶快通知西路军大将费扬古,要他们在半路上截击。噶尔丹带兵奔走了5天5夜,到了昭莫多(在今蒙古人民共和国乌兰巴托东南)正好遇到费扬古军。昭莫多原是一座大树林,前面有一个开阔地带,历来是漠北的战场。费扬古按照康熙的部署,在小山的树林茂密地方设下埋伏,先派先锋400人诱战,边战边退,把叛军引到预先埋伏的地方,清军先下马步战,听到号角声起,就一跃上马,占据了山顶。叛军向山顶进攻,清军从山顶放箭发枪,展开了一场激战。费扬古又派出一支人马在山下袭击叛军辎重,前后夹击。叛军死的死,降的降。最后,噶尔丹只带了几十名骑兵脱逃。
经过两次大战,噶尔丹叛乱集团土崩瓦解,康熙要噶尔丹投降,但是噶尔丹仍然继续顽抗。隔了一年,康熙又带兵渡过黄河亲征。这时候,噶尔丹原来的根据地伊犁已经被他侄儿策妄阿拉布坦占领;他的左右亲信听说清军来到,也纷纷投降,愿意做清军的向导。噶尔丹走投无路,只得服毒自杀。
清政府重新控制了阿尔泰山以东的漠北蒙古,给当地蒙古贵族各种封号和官职。清政府又在乌里雅苏台设立将军,统辖漠北蒙古。
后来,噶尔丹的侄子策妄阿拉布坦攻占西藏。康熙五十九年(公元1720年),康熙又派兵远征西藏,驱逐了策妄阿拉布坦,护送达赖喇嘛六世进藏。清政府又在拉萨设置驻藏大臣,代表中央政府同达赖、班禅共同管理西藏。