秃发树机能领兵造反,雍、凉边境被他劫掠一空。秦州刺史胡烈重伤身亡,部下将士大多被俘或身亡。扶风王司马亮奉命镇守雍、凉二州,听到消息后,急忙派遣刘旗将军支援边境。刘旗得知胡烈战败,不敢前进,在途中逗留。武帝下诏贬司马亮为车骑将军,并命司马亮将刘旗处死。司马亮回复道:“镇守无方罪在司马亮,与刘旗无关。”武帝下诏将司马亮免官,并把他召回京都,任命尚书石鉴为安西将军,掌管秦州军事,讨伐秃发树机能,同时任命前河南尹杜预为秦州刺史,兼任轻车将军。杜预与石鉴向来不和,石鉴想借此机会陷害杜预,于是命杜预孤军出战。杜预知道石鉴是有意为难自己,就先养精蓄锐,打算来年春天再出兵。石鉴大怒,立即弹劾杜预。晋武帝下诏将杜预押入京都。幸亏杜预娶了皇帝的姑姑高陆公主为妻,才得以免罪。石鉴多次发兵,都被秃发树机能击退。泰始七年(271年),秃发树机能与北边叛军联合,一同攻打金城,凉州刺史牵弘被他们杀害。
武帝借秋猎之际挑选将帅,特命鲁公兼车骑将军贾充掌管秦、凉二州军事。诏书一下,贾充日夜担忧,不知所措,他本不懂用兵谋略,只是靠着阿谀奉承才得以位列元勋。朝堂众臣多趋附贾充,唯有侍中任恺、中书令庚纯刚正不阿,不愿意逢迎贾充。任恺担心贾充日后祸乱朝廷,便趁机向皇帝建议命贾充负责秦、凉二州的军事。武帝竟然准奏,并且迅速颁下诏书。贾充无计可施,只好硬着头皮上阵。
百官前往夕阳亭为贾充饯行。酒至半酣,贾充离席去换衣服,荀勖也起身跟随他出去。荀勖平日与贾充狼狈为奸,二人密谈许久,贾充皱眉问道:“我实在不想去,你有没有什么法子?”荀勖回答道:“听说主上正在为太子议婚,您有两个女儿待字闺中,何不好好谋划?倘若此事成了,大婚当前,皇帝也就不会派您远行了。”贾充狞笑道:“恐怕鄙人没这福分。”荀勖靠近贾充,低声道:“事在人为。”然后又低声说了几句。贾充听了喜出望外,连连拜谢。
贾充故意缓慢行军,每天只走数里。老天似乎也有意帮他,竟然连夜降雪。贾充立即派使者飞奏京都,说路上积雪甚厚,难以行军,只有等到天晴才可以继续前进。皇上体恤士兵,下令贾充返回京都,择日再启程。贾充连忙返回京都,凑巧自己的三女儿竟然被选中,成了太子妃。真是天遂人愿。
太子当时年已十二,武帝原本想纳卫瓘的女儿为太子妃。贾充的妻子郭槐暗地里贿赂宫人,让她们在杨皇后面前为自己的女儿说好话。妇道人家耳根子软,听到身边人提及贾充的女儿如何有德、如何有才,杨皇后不由得喜欢起来,于是就劝武帝纳贾充之女为太子妃。武帝摇头不允,杨皇后惊问原因,武帝答道:“我打算聘娶卫家之女。卫家人德才兼备,女儿相貌秀美,秀外慧中;贾家人无德无才,女儿相貌丑陋,身短面黑。”杨皇后答道:“听说贾充的女儿很有才华和品德,陛下不该固执己见,错失好儿媳。”武帝仍然不答应。杨皇后又请武帝询问群臣的意见,看看娶贾充之女是否可行。武帝这才略略点头答应。
武帝召群臣入宴,商议太子婚事。在夜宴上,荀勖极力夸赞贾充之女如何贤惠、如何端庄。冯紞也极力称赞贾充之女。武帝便问:“贾充共有几个女儿?”荀勖答道:“贾充的前妻生有两个女儿,已经出嫁,后妻生有两个女儿,尚未婚配。”武帝又问:“尚未婚配的两个女儿,年龄多大?”荀勖又答道:“臣听说他的小女儿最美,才十一岁,正好配给太子。”武帝道:“十一岁未免太小。”荀勖立即接着说:“贾充的第三个女儿,已经十四岁,虽然相貌比不上幼女,但才能和品德比幼女好。女子重德不重貌,请圣上明裁!”武帝道:“既然这样,不如让贾充的第三个女儿嫁给我的儿子。”荀勖等人立即拜贺武帝,武帝面有喜色。这天贾充刚好回到京都,荀勖等人一出殿门,便欢天喜地跑到贾府道喜去了。
贾充的三女儿叫贾南风,又矮又胖,语言粗鄙。贾充听说武帝答应了婚事,自然笑逐颜开,对荀勖等人感激不已。贾充天天忙着筹备嫁妆,早把西征之事给忘了,武帝也不再提及此事。年底武帝下诏,让贾充官复原职。
泰始八年(272年)二月,是太子司马衷纳妃的佳期。女方出自相府豪门,自然穿金戴银,装扮得十分华丽,只是累坏了一群官员,既要两边贺喜,又要两边送礼。愚儿丑女结为夫妇,也算是天造地设的一对。武帝见了新妇样貌,心中懊悔不已,好在新郎新娘两人倒是亲热,武帝也只好由他们去了。