住在土樓的花木蘭從小就好動,但也因為調皮搗蛋的個性,經常受到其他村民的抱怨。木蘭的父親花周告訴木蘭,女人應該要靠著結婚來光宗耀祖,並告誡木蘭要隱藏使用氣的天賦。
女巫仙娘在變形成一名商人後先潛入一座邊城,接著,上次戰爭中被皇帝殺死的柔然可汗之子布利可汗突然出現,親自帶領柔然騎兵對城池發起衝鋒。布利可汗先徒手抓住一支城牆守軍射來的箭,接著率領柔然戰士以近90度的角度衝上城牆,與已經在城內的仙娘一起攻陷邊城。消息傳回都城後,宰相向皇帝報告說布利可汗已經重建了柔然軍隊,並攻陷北方六城,中斷絲綢之路的貿易。同時一名倖存下來的士兵,向皇帝稟告這名女巫靠著強大的氣帶領柔然軍,皇帝決定召集一支軍隊保護絲綢之路,並發布詔令,下令每個家庭提供一位男丁加入軍隊。但其實這名倖存士兵是由仙娘變形成的,她在離開皇宮後變形一隻老鷹飛回柔然軍隊的營地。
隨著木蘭長大,父母決定讓木蘭嫁人,但木蘭在媒婆家搞得一團亂,媒婆斥木蘭為花家的恥辱,木蘭和其家人只好在村民注視下離開。這時一群官員帶著皇帝的圣旨進到土樓,宣布每個家庭必須派出一名男子去和北方侵略者作戰,當官員一一唱名,輪到花周上前接旨,花周表示雖然之前與北方侵略者的戰鬥中,已經受了傷,但他仍然會接受服役,但隨即因為腿傷而倒下,他拒絕士兵的攙扶,獨自爬起漫漫離去。
木蘭決定代父出征,在夜晚偷拿了父親的武器盔甲,在祠堂向祖先牌位下跪後,駕馬離開土樓。半途迷路的她在鳳凰的指引下成功抵達軍營。化名為「花軍」的木蘭在報到時與陳洪輝發生衝突,隨即遭到董將軍的制止,而董將軍發現木蘭使用的劍是以前認識的花周所有。在堅實的訓練下,木蘭和其他袍澤越來越強,但在一次槍的訓練中,木蘭與洪輝再次發生衝突,兩人在對打中,木蘭使用了氣擊敗了洪輝,而旁觀的董將軍也目睹一切。木蘭趁晚上河邊沒有人的時候跑去洗澡,遇到同樣來洗澡的洪輝,洪輝想與木蘭和好,但尷尬而惱羞的木蘭只能回絕。
與此同時,布利可汗召集了12位柔然部落的領導人,攻下了一座又一座的城池。木蘭所屬的部隊在還沒有完成訓練的情況下,奉命支援前線。在出征之前,士兵向三大美德「忠、勇、真」宣誓,宣誓完良心不安的木蘭原本想向董將軍坦承其性別,但董將軍要找她當女婿,不敢說出口的木蘭只好作罷。
到達堡壘的董將軍收到偵查兵的匯報,柔然軍隊正在集結,決定主動出擊。當兩軍交鋒後,木蘭追擊逃走的柔然戰士,在獨自一人的情況下遇到了仙娘。由於木蘭自稱假名花軍,無法面對三大美德的中「真」,沒辦法完全施展氣,因此被仙娘射出的手裡劍擊中胸口昏了過去。醒來的木蘭再次看到了鳳凰,決定面對自己的身分,脫掉盔甲回歸木蘭的身分,重回大部隊中加入戰鬥。這時仙娘變形成一群烏鴉發動襲擊,董將軍下令部隊組成圓形的方陣抵禦攻擊,柔然軍趁隙搬出一台投石機攻擊聚集在一起的帝國軍。木蘭見狀,繞到另一邊以弓箭對柔然軍隊射擊。受到攻擊的柔然軍將投石機轉向木蘭,結果擊中了木蘭後面的雪山引發雪崩,雪崩吞沒了整個柔然軍,卻也波及到了帝國軍。
騎馬狂奔的木蘭將洪輝從雪中撈起來,並向袍澤坦承其身分,憤怒的董將軍將木蘭逐出軍隊,傷心的木蘭再次遇到仙娘,拒絕仙娘招攬的木蘭回到軍隊,並說服董將軍組成一支小隊返回都城,因為柔然的軍隊將會對都城發動攻擊。
柔然刺客飛簷走壁的滲透都城,仙娘變形成宰相後,前去晉見皇帝,表示布利可汗在新建中的皇宮向皇帝提出決鬥,而皇帝也答應了。換上戎裝的皇帝前往決鬥地點,而假宰相將都城所有的禁軍召集到廣場待命。木蘭與董將軍的小隊就在沒有衛兵攔阻的情況下抵達廣場,這時與其他禁軍遭到了柔然刺客的埋伏,董將軍命令木蘭去保護皇帝。此時抵達新建皇宮工地的皇帝也遭到布利可汗埋伏,他使用工地防塵布擊倒了幾名柔然刺客,但還是不敵人數眾多的柔然士兵而被俘,布利可汗準備燒死皇帝。
木蘭的袍澤幫她擋下追兵,而木蘭抵達宮殿時發現仙娘坐在龍椅上,木蘭說服了仙娘幫她找到皇帝,在仙娘的指引下前往工地,而布利可汗也發現仙娘帶了一名年輕女人過來,使用弓箭企圖射殺木蘭,仙娘立即變形成老鷹擋下弓箭,死在木蘭的懷裡。木蘭登上興建中的皇宮,與布利可汗對打,途中不小心將父親的劍掉進液態鐵,兩人最後跳上由起重機吊起的一根木材,布利可汗想要跟木蘭繼續對打,木蘭卻直接把繩索砍斷并迅速抓住绳索上端,布利可汗则墜落。木蘭幫皇帝解開繩索時,沒死的布利可汗射了一隻弓箭,卻被皇帝接住,皇帝將弓箭輕輕一拋,木蘭一個空中迴旋踢將弓箭射向布利可汗,布利可汗想接住卻被射中丧命。
都城放煙火慶祝,皇帝想讓木蘭加入禁軍,木蘭没有接受,只想回家尽孝;洪輝送別木蘭。回家的木蘭得到父親的諒解,而董將軍也將皇帝的封賞送到,是一支「忠、勇、真、孝」的長劍,比木兰丢失其父的长剑上的“忠、勇、真”增了一“孝”字。