六月一个炎热的傍晚,大学生亚瑟,一个满头黑发,深蓝眼睛,非常漂亮的青年,来到神学院,向院长蒙泰尼里请教。在花园里,当蒙泰尼里得知亚瑟参加秘密的革命活动后,紧紧地握住他的手,用圆润、响亮,富于抑扬顿挫的声音,极力劝阻。亚瑟把蒙泰尼里当做自己的良师和慈父,用一片赤诚的心对待他。在去阿尔卑斯山游玩之前,蒙泰尼里再次劝阻亚瑟,但始终没有动摇亚瑟的决心。
不久,蒙泰尼里被调到罗马当主教去了。新院长卡尔狄神甫,成为亚瑟的忏悔神甫。亚瑟不知道卡尔狄是警方的密探,在一次忏悔中向他坦白了自己对波拉的妒意。那是在一次秘密集会上,亚瑟遇见了童年时代的他深深爱着的女友琼玛。她被波拉热情洋溢的讲话所吸引,亚瑟发现波拉对琼玛似乎也产生了感情。他佩服这位比自己更成熟的革命家,也不由自主地产生了妒忌的心情。经过卡尔狄的诱骗,亚瑟泄露了自己和波拉的青年意大利党员的身份和他们的一次秘密行动。
当天夜里,亚瑟被捕了。审问时,他识破了一份伪造的波拉的口供,警方的阴谋没有得逞。直到被释放出狱,他才明白他和波拉的被捕完全是卡尔狄神甫出卖的。等在监狱门口迎接他的琼玛,误以为是他出卖了波拉,愤然打了他一个耳光离去。
亚瑟心乱如麻,回到家里。突然,哥嫂怒气冲冲闯进屋里,把他的母亲格拉迪斯和蒙泰尼里的亲笔忏悔书扔给他看,原来蒙泰尼里是他的亲生父亲,他是天主教徒的私生子。可是蒙泰尼里一直用谎话欺骗他。双重打击,摧毁了他对天主教的幻想。他决心与反动统治和伪善的天主教会作无情的斗争。接着,他布置了投河自杀的假象,偷偷乘船到拉丁美洲,开始了新的生活。
13年过去了,亚瑟化名里瓦雷兹,回到意大利进行革命工作。由于他以“牛虻”为笔名发表文章,揭露反动当局和天主教会,人们也称他为“牛虻”。在南美的流浪生活,使他体验了世态炎凉,饱尝了人间辛酸,他已成为一个坚定成熟的革命战士。他皮肤黝黑,跛了右脚,左臂弯曲,左手残缺了两个指头,脸上也留下了伤痕。
马尼克党决定邀请牛虻参加他们揭露教会欺骗的工作。这时正值新教皇上台,他手段毒辣,采取了一些表面的改革措施,让蒙泰尼里当上了红衣主教。牛虻的讽刺文章击中了蒙泰尼里的要害,琼玛十分佩服。
当年亚瑟失踪,琼玛精神上受到打击,被带回英国休养,波拉出狱后流亡英国,他们结了婚,有了孩子。后来丈夫和孩子相继病故,她只身回到意大利,投身革命活动,成为马尼克党的积极党员。
牛虻不知疲倦,旧病复发,琼玛和同志们轮流护理他。他把自己在南美的痛苦经历告诉了琼玛,使她怀疑眼前的牛虻就是亚瑟,并且把亚瑟少年时代的照片给牛虻看,牛虻说死去了的还是让他死去吧。
牛虻劝琼玛投身到武装起义的实际斗争中去,并且在琼玛的帮助下,把军火从英国运到了意大利,牛虻冒险去安排一切。临行前,他答应把一切告诉琼玛。
牛虻刚和接应他的人接上头,就被暗探和武装的士兵包围了,在掩护其他同志脱险时,蒙泰尼里出现在枪口之下,牛虻身子摇晃,手垂了下去,被捕了。
上校用尽威逼利诱的手段,也没能使他招供。于是,蒙泰尼里来到牢房。牛虻只说是要杀老鼠。
当天夜里,牛虻用同伴送进来的锉刀,锉断了铁条,但是他在监狱的甬道里晕倒了,越狱失败了。
上校给他戴上了镣铐。七天以后,蒙泰尼里又单独地来看他了。这一次,他知道了眼前的牛虻就是失踪的亚瑟。但是他拒绝和亚瑟一起走。
蒙泰尼里毫不犹豫地把牛虻交给了军事法庭,牛虻被判处死刑。
奉命执行死刑的士兵不忍开枪,牛虻命令他们瞄准些。他倒下了。
琼玛接到牛虻的信,他就是亚瑟,他希望人们坚定团结起来,给敌人以猛烈的打击。
蒙泰尼里疯了,不久去世。