黃土高原上,壹群孩子玩著“掐架”的遊戲,輸了被對方親壹嘴。烏梅被當歸逮住,當歸罰烏梅唱歌。烏梅唱出了渴望“過黃河”的童謠。為此,守寡的童養媳烏梅挨了婆婆的毒打,又罰她為亡夫招魂。當歸同情烏梅,兩人壹起渡黃河,在渡船上被抓回,烏梅繼續守活寡。當歸吊在曬架上示眾。趕牲靈的防風大叔救了當歸,當歸跟隨牲靈隊上了腳戶。
在途中,紅花的父母為躲債將她托牲靈隊捎帶到外地的表叔家。他們遇上了個會唱歌的土匪黑骨頭。黑骨頭剛好贏了個好模樣的婆姨柳蘭,只要了幾張年畫,沒有搶東西。經過壹路同行,當歸與紅花產生了愛情,但紅花到了表叔家,被騙嫁給鐵匠營棉線板柴胡。防風等出主意把紅花藏在棺材裏逃離鐵匠營,但被黑骨頭搶回。婚筵上,當歸癡狂地吹起哨吶,紅花淚如泉湧。
當歸已步入壯年,他和防風在廢墟中發現瀕於絕境的柳蘭母女,以騾血救活了她們。原來,柳蘭與黑骨頭生了三個女兒,頭兩個都被被扔進了沙井,為救三女兒,柳蘭逃了出來。後來遇到瘟疫,防風死了。當歸重新找到柳蘭母女,與她們組成了壹個家庭。
壹年壹度闖社火,當歸打算闖罷社火,全家過黃河,在社火上,遇上黑骨頭。柳頭重落入黑骨頭手中。黑骨頭在當歸的鎖骨上釘上了個鐵環。已年邁的當歸仍走在黃河古道上,這次是他送柳蘭的女兒過黃河成親。黃河渡口,遇見已成囚犯的黑骨頭。
從已說不出話來的黑骨頭的手勢看,當歸知道柳蘭已死。他斟給黑骨頭壹碗酒,黑骨頭壹飲而盡。櫻子大喊壹聲:“大大!”當歸和黑骨頭同時轉過頭去。黑骨頭被帶走,當歸目視他離去,臉上露出壹絲難以覺察的苦笑。經歷了人生滄桑的當歸,在高亢而回腸蕩氣的歌聲中,繼續走在黃河古道上 。