意大利青年亞瑟,出身于富商家庭,但成年后毅然投身革命。由于疏忽,他在懺悔中泄漏了機密,導致戰(zhàn)友被捕,令青梅竹馬的女友婕瑪誤會,并痛苦地發(fā)現(xiàn)自己竟然是崇拜已久的蒙塔內利神父的私生子。這一連串的打擊使他陷入極度痛苦之中。他一錘打碎了心愛的耶穌蒙難像,以示與教會決裂,然后偽裝了自殺的現(xiàn)場,只身流亡到南美洲。在度過了地獄般的十三年漂泊生活后,無論是外表還是內心都發(fā)生了驚人變化的亞瑟化名“牛虻”,回到了意大利,成為一個堅定的革命者。他和戰(zhàn)友們積極準備著起義,在一次偷運軍火的行動中被敵人突然包圍,牛虻掩護其他人突圍,自己卻因為蒙塔內利的突然出現(xiàn)而不幸被捕。面對前來探望的蒙塔內利,牛虻動情地訴說了他的悲慘經歷,企圖打動蒙塔內利,要他在上帝(宗教)與兒子(革命)之間做出抉擇。但他們誰都不能放棄自己的信仰。最終,蒙塔內利在牛虻的死刑判決書上簽了字,自己也心痛而死。就義前,牛虻給婕瑪寫了一封信,告訴她自己是亞瑟。