高生長在東北一個小縣城,母親高紅軍是當地落戶的北京知青,父親王繼良是本地人。王繼良是卡車司機,好賭不顧家,在外欠了大筆賭債。高紅軍性格堅韌直爽,常與王針鋒相對爭吵,關係瀕臨崩潰。這一切王高看在眼裏,漸漸漠然。
爺爺奶奶很疼他,因為他是老王家唯一孫子。王高最好的夥伴是姑姑家的表弟龍生,倆人好得像親兄弟。
偶然機會,王高瞭解自己身世,原來他並非王繼良親生。當年媽媽生下他時還是知青,養活不了他曾把他送人。後來媽媽遇見王繼良,王不能生養,為了傳宗接代才娶了媽媽並接受王高。
王繼良賭博惡習難改,還明目張膽從外地找了個年輕姑娘帶回來。高紅軍實在無法忍受,毅然與之離婚,隻身回了北京。她沒帶走王高,因為怕王家老人受不了,另外她覺得自己前途未蔔,只能寄居在父母家,暫時不能照顧兒子。
王繼良的相好來家吵鬧,爭執中爺爺被氣病,很快去世。奶奶無力留下王高,只好讓他去北京找媽媽。
初到北京,王高不願去見媽媽。他獨自遊蕩,見一個女孩被搶劫,便出手幫忙。女孩叫劉佳,比王高大一點,性格爽朗大方。劉佳聽王高講述經歷,對他同情又佩服。劉佳成了王高來北京交上的第一個好朋友。
母子終於相見,前途卻一片渺茫。高紅軍在書店工作,寄居在父母家。王高姥爺是個脾氣倔強的老軍人,對女兒生活極其不滿,拒絕收留王高。同樣倔強的王高也無法與姥姥姥爺相處,媽媽只好帶著他到處租房,他們樂觀面對困頓生活。姥爺家有支作為戰利品收藏的手槍,王高心中嚮往,可姥爺就是不許他碰。
高紅軍偶遇她的中學老師陳燮明,陳佩服高紅軍的樂觀,也喜歡上了倔強叛逆的王高。為幫助他們,陳把自己的一套平房借給他們住。其實此時陳正與妻子分居,借出房子後他自己只好在單位湊合。陳妻來到平房,見高紅軍產生誤會,高紅軍知陳有苦衷,於是把平房騰出,母子再次搬家。
劉佳讓王高認識了她的男友郭威,郭講義氣愛充大哥,給王高介紹了工作。王高對劉佳產生純潔情愫,可他既羞於表達又礙于郭劉關係,陷於痛苦之中。郭威的紈絝勁頭和他對劉佳的佔有而輕視,使王高莫名憤怒。
王高生父臧峻嶺找到王高。他當年也是知青,文革中與高紅軍失散,並不知高紅軍那時已懷了他們的孩子。臧下海經商成為富人,出手豪闊,身邊帶著年輕女友,他的出現使王高心理失衡。王高覺得與臧格格不入,可畢竟是自己生父,他還是努力去與臧親近。
奶奶姑姑帶龍生突然來京,哥倆重逢格外高興。龍生染上嚴重腎病,是來看病的。為給龍生籌錢換腎,王高遭臧峻嶺拒絕,只好借下高利貸。龍生手術成功,王高卻陷入麻煩。王高一念之差偷拿臧的錢被發現,父子翻了臉。郭威幫助還了高利貸,王高暗暗感激他。
陳燮明遭遇婚姻變故,與高紅軍之間暗生火花。王高也接受了陳做媽媽的男朋友,這可貴的愛情給母子倆生活帶來了亮色。就在這時陳妻病倒,善良的高紅軍幫陳照料妻子,卻造成了陳夫妻複合。
郭威發現臧峻嶺女友寇琴與別的男人幽會,想借此勒索寇琴,並鼓勵王高去做。心術不正的郭威讓王高反感,可他又對王高有恩,王高萬分矛盾。
郭威勒索行為敗露,造成了王高父子的決裂。劉佳不再與郭胡混,打算出國上學。在低谷之中王高又目睹媽媽的感情受到傷害,龍生的死訊也在這時傳來,一切的憤恨不平像火山噴發,王高衝動地想去偷出姥爺的手槍,幸虧被姥爺及時阻止。
一番絕望的宣洩之後,王高得到了平靜。姥爺對王高刮目相看,並反省自己對待王高母子的過激態度;臧峻嶺理解了兒子,父子倆找到了真正溝通的方式;劉佳臨行前來告別,表示永遠把王高當作最好的朋友;姑姑按照龍生的遺言把龍生的錢寄給王高,讓他買心愛的電腦;媽媽勇敢地面對感情挫折,繼續給王高做著最好的榜樣。
經歷過挫折磨難,體驗過成長的痛苦,王高終於領悟到生活的真諦,感受到親情的力量……