Una novicia llamada Viridiana (Silvia Pinal) está a punto de hacer sus votos cuando su único pariente vivo, su tío Don Jaime (Fernando Rey), la invita a visitarlo. Ella sólo lo ha visto una vez y se resiste a aceptar. Su madre, la superiora, la presiona para que acepte.
Don Jaime es un recluso que vive en una granja abandonada con unos pocos sirvientes: Ramona (Margarita Lozano), su hija Rita y Moncho. Cuando Don Jaime ve a su sobrina, le llama la atención su gran parecido con su difunta esposa.
En su última noche, Viridiana, agradecida por el apoyo económico de su tío durante mucho tiempo, accede a regañadientes a su extraña petición de que se ponga el traje de novia de su esposa. Cuando Ramona le informa de que Don Jaime quiere casarse con ella, se queda atónita y su tío parece abandonar la idea. Ramona droga a escondidas la bebida de Viridiana y Don Jaime lleva a la chica inconsciente a su habitación con la intención de violarla, pero en el último momento se detiene. Sin embargo, a la mañana siguiente miente y le dice que «le ha quitado la virginidad», por lo que no puede volver a su convento. Cuando ella insiste en que debe volver, él confiesa que ha mentido, dejándola sin saber qué ha pasado.
En la parada del autobús, las autoridades le impiden salir. Su tío se ha ahorcado, dejando sus bienes a ella y a su hijo ilegítimo Jorge (Francisco Rabal). Profundamente perturbada, Viridiana decide no volver al convento. En su lugar, recoge a unos mendigos y los instala en una dependencia. Se dedica a alimentarlos y a educarlos moralmente. Asqueado, Moncho se marcha. Jorge se instala en la casa con su novia Lucía y comienza a renovar el lugar en mal estado. Lucía, al percibir que él desea a Viridiana como lo hacía su padre, se marcha. Jorge se insinúa entonces a la voluntariosa Ramona.
Cuando Viridiana y Jorge se marchan unos días para ocuparse de unos asuntos, los indigentes irrumpen en la casa. Al principio, sólo quieren echar un vistazo, pero ante tanta abundancia, degeneran en un grupo de borrachos y alborotadores y hacen una fiesta al son del Mesías de Haendel. Los mendigos posan alrededor de la mesa para una foto en la que se asemejan a las figuras de la Última Cena de Da Vinci.
Los legítimos propietarios regresan antes de lo previsto y encuentran la casa destrozada. Los malhechores se excusan uno a uno y se van. Jorge se enfrenta a uno de ellos, que saca un cuchillo. Otro mendigo le golpea la cabeza con una botella, dejándolo inconsciente. Viridiana entra en la habitación y se apresura a ayudar a Jorge, que está tendido en el suelo. El primer hombre la agarra. Mientras Viridiana se resiste a la agresión sexual, Jorge recupera la conciencia. Ha sido atado, pero consigue sobornar a un mendigo para que mate al posible violador. Finalmente llega la policía.
Viridiana es una mujer cambiada y la joven Rita quema su corona de espinas. Llevando el pelo suelto, Viridiana llama a la puerta de Jorge, pero encuentra a Ramona con él en su dormitorio. Mientras Ashley Beaumont canta «Shimmy Doll» en el tocadiscos, Jorge le dice a Viridiana que sólo estaban jugando a las cartas y la insta a unirse a ellos: «Sabes, la primera vez que te vi, pensé que mi primo y yo acabaríamos barajando la baraja juntos.»
Final censuradoEdición
La junta de censura española rechazó el final original de la película, que mostraba a Viridiana entrando en la habitación de su primo y cerrando lentamente la puerta tras ella. En consecuencia, se escribió un nuevo final, que resultó más sugerente que el primero, ya que implicaba un ménage à trois entre Ramona, Jorge y Viridiana.