平原縣的喬生,有個女兒長得又黑又丑:豁鼻子,還瘸著一條腿,二十五六歲了,也沒有來提親的。同縣有個穆生,四十多歲,妻子死了,家里很窮,無錢再娶,就出了一份微薄的彩禮,娶了。三年后,生了一個兒子。不久,穆生死了。家里更窮了,生活十分困難,就去乞求母親接濟。母親很不耐煩,生氣,再不去一娘一家,只靠紡織維持生活。
有一個孟生,死了妻子,撇下個兒子叫烏頭,剛滿周歲,沒人撫養,所以孟生急著再娶一房媳婦;可是媒人一連提了好幾個,孟生都不中意。一天孟生偶然看見,十分喜歡她,就找人暗中傳信給,愿意娶她。推辭說:我現在如此忍凍挨餓,嫁給官人可以得到一溫一飽,怎能不愿意呢?但是我又瘸又丑,和別人不一樣。我所能自信的是品德。再嫁第二個丈夫,官人圖我什么呢?孟生敬佩她是一位賢良女子,對她更加愛慕。便叫媒人帶上封好的錢去找的母親商量。喬母很高興,親自到女兒家里,執意要女兒改嫁孟生。堅決不答應。喬母很慚愧,向孟生表示,愿意把小女兒嫁給他。孟生的家人都很喜歡,孟生卻不愿意。
過了不久,孟生突然得急病死了。前去祭奠,哭得很悲哀。孟生本沒有親戚,他一死,村里的無賴都來欺負他家。家里的東西被拿光了,又謀劃瓜分他的田產。家中的仆人也各自乘機偷了東西走了。只有一個老媽媽抱著孟生的兒子在靈堂帳幕中哭泣。問明了原委,心中忿忿布平。聽說林生同孟家很要好,就登門對林生說:夫婦、朋友是人間大倫。我因為很丑,被人看不起,只有孟生能了解我。以前我雖然拒絕了他的求婚,可我的心卻早已許給他了。如今他死了,兒子又小,我當然應該報答知已。但是撫養孤兒容易,抵御壞人的欺侮就難了。如果因為孟生沒有父母兄弟,就坐視他的兒子餓死,家產被搶光也不相救,那么五倫之中就可以不要朋友這一倫了!我所期待你的并不多,只要你寫張狀子告到縣官那里。孤兒我來撫養。林生說:可以。便告辭回家。
林生按的囑托,準備寫狀子。那些無賴火了,要和林生動刀子。林生非常害怕,關上大門不敢出來了。等了幾天,不見動靜,連忙去問,孟家的田產已經被分光了。氣極了,挺身而出,親自去找縣官告狀。縣官問是孟生的什么人,說:你是一縣之主,斷案憑的是理。如果我告的不是真情,就是他的親戚也逃脫不了罪過;如果是真的,就是過路人說了也可以聽。縣官氣她說話難聽,訓斥了一通把她趕出去了。的冤屈無法伸述,就到一個鄉紳家里哭訴。那鄉紳聽了,覺得很義氣,就替她到縣官那里剖明是非。縣官查明實情后,懲治了那些無賴,將孟家被搶走的東西又全要了回來。
有人提議,想留住在孟家,就便撫養他的孤兒。不肯,把孟家的房門鎖起來,讓老媽媽抱著烏頭跟她一塊回去,住在自家另一間屋里。凡是烏頭的日常所需,都是和老媽媽一塊去孟家打開一房門拿出糧食,替烏頭置辦,自己從不沾孟家一點光,依然抱著兒子過窮日子,和從前一樣。
過了幾年,烏頭慢慢長大了。給他請了老師,教他讀書;自己的兒子則叫他學著干活。老媽媽勸她讓兒子和烏頭一塊讀書,說:烏頭的費用是他自已的。我如耗費人家的錢教自己的孩子,我的心意怎么能說明呢?又過了幾年,為烏頭積攢了幾百石糧食,給他娶了大戶人家的女兒為妻。又整修了房屋,讓烏頭回自己家里生活。烏頭哭著再三要求她一同去自己家住,才依從了。但仍然自己紡線織布度日。烏頭夫婦奪去紡織的工具,說:我們母子倆光吃不干活,怎么能安心呢?就早起晚睡給烏頭管理家務。讓他的兒子去巡查莊稼,如同一個傭人。烏頭夫妻有點小過錯,總是訓斥責備,從不寬容。稍有不改,就生氣地要回去。直到夫妻倆跪下認錯,悔過了,才罷休。不久,烏頭考中了秀才。又要告辭回家,烏頭不答應,出錢為的兒子娶了媳婦。就把兒子分出去回家過。烏頭留不住他,就暗地讓人從附近村子里買了一百畝好地,送的兒子走了。
后來,得了病,要回去,烏頭仍然不答應。看看病情越來越重,囑咐烏頭說:一定要把我葬在穆家!烏頭答應了。死了以后,烏頭用金錢買通了穆生的兒子,讓她母親同自己的父親孟生葬在一起。到了下葬那天,只覺棺材特別沉,三十個人也抬不動。穆生的兒子忽然倒在地上,七竅流血,自己說:不孝的兒子怎么能賣掉自己的母親!烏頭害怕了,連忙跪下磕頭禱告,的兒子才好了。靈柩又停了幾天,等把穆生的墳墓修好,烏頭才把同穆生合葬了。