In Georgia, nei primi anni del nostro secolo, Celie, una adolescente di colore, viene violentata da colui che essa ritiene sia suo padre e dà alla luce due figli, che le vengono sottratti. L'uomo la cede ad Albert, un vedovo con quattro bambini, nero anche lui, uomo violento e manesco. A Celie non resta che l'affetto per Nettie, la sorella minore, che un giorno si presenta a casa. Ma Celie non è che una schiava, disprezzata e maltrattata dal marito, che comincia ad insidiare Nettie. Respinto con forza, Albert caccia di casa Nettie, a cui non resta che promettere tra le lacrime alla sorella l'invio di lettere. La perversità dell'uomo arriva al punto di nascondere le missive che per anni Nettie spedirà a Celie, che continua a condurre una misera esistenza. Albert le porta in casa l'amante, una cantante di colore, di nome Shug Avery, che però diventa amica di Celie, apprezzata e fatta oggetto d'affetto per la sua bontà e pazienza. Mentre Nettie si è fatta missionaria e vive in Africa del Sud presso la famiglia del pastore che, a suo tempo, aveva adottato i figli di Celie, la vita di questa continua tra incessanti alternative: il figlio maggiore di Albert, Harpo, si sposa con Sofia, giovane ed energica che paga con otto anni di carcere un gesto di ribellione contro la moglie del sindaco, per tornare poi, distrutta nel morale, in famiglia. Harpo ha messo su un modesto locale, in cui talvolta si esibisce, cantando "spiritual", la bella Shug, finalmente sposatasi. E Shug, a suo tempo respinta dal locale pastore suo padre, alla fine, cantando insieme ai fedeli un inno di gioia al Signore, con lui si riconcilia. Celie e Shug hanno scoperto in un nascondiglio tutte le lettere di Nettie alla sorella: Celie è felice. Per di più eredita casa e proprietà del suo vero padre. E lì accoglie, un giorno, Nettie che le porta in visita Olivia ed il fratello. Nella gioia generale, resta isolato Albert, invecchiato ed escluso dal proprio egoismo.