Historien börjar i New England år 1835. Sarah, en vacker ung flicka, möter sin far, Alex Stafford, för första gången. Sexåriga Sarah får veta att hon är produkten av Staffords äktenskapsbrottsliga affär med hennes mor, Mae. Mae uppmanades att abortera barnet, men vägrade att göra det. Detta beslut separerade henne och Alex och gjorde Mae deprimerad. Sarah börjar tro att det är hennes fel, men hon hoppas att Alex aldrig kommer tillbaka.
Senare samma år tar Maes hembiträde Cleo motvilligt med sig Sarah på en utflykt till kusten, så att Mae kan få ett privat besök med Alex. Cleo tar med sig Sarah till en populär bordell där Cleo är välkänd och har en manlig följeslagare. Efter att ha blivit berusad går hon med på att ligga med honom medan Sarah väntar i hallen. Efter att denne man lämnat Cleo med brustet hjärta igen, berättar Cleo i halvt berusat tillstånd för Sarah ”Guds sanning” och tvingar en skrämd Sarah att lyssna på henne när hon säger att ingen man någonsin bryr sig om en kvinna och att allt de vill ha är sex.
Mae och Sarah flyttar sedan till ett skjul vid hamnen, där Mae börjar prostituera sig för att få pengarna att räcka till. Hennes rykte är känt i hela staden, och den unga Sarah tvingas på grund av det drabbas av stadsbornas avvisande på grund av det. Genom denna erfarenhet lär sig Sarah att maskera sina känslor och i stället ersätta dem med ett hårt yttre.
Några år senare dör Mae i en fruktansvärd sjukdom och lämnar Sarah ensam vid åtta års ålder med en berusad man vid namn Rab. Osäker på vad han ska göra med det lilla barnet söker Rab ett hem för barnet. Han hittar en man som letar efter en liten flicka till sin rika herre. Rab tror att detta är Sarahs tur, och tar med henne till det rika grannskapet. Vid dörren möts de av en kvinna som uppmanar Rab att ta med sig Sarah och inte komma tillbaka. Rab låter sig inte avskräckas och insisterar på att Sarah är perfekt för den rike mannen. Kvinnan släpper in paret och skickar dem till ett sovrum på övervåningen där de uppmanas att vänta tills hennes herre kan träffa dem.
Duke, hushållets herre, välkomnar Sarah och Rab; minuter senare stryps Rab inför Sarahs ögon och hans kropp dumpas i en närliggande gränd. Duke, som är pedofil, hade letat i staden, inte efter en ny dotter, utan efter ett nytt offer. Duke informerar Sarah (av honom döpt till Angel) om att det finns många saker han vill lära henne. Han ger henne sin första ”lektion” samma kväll.
Efter cirka 10 år med Duke rymmer Angel slutligen och går ombord på ett fartyg med destination Kalifornien. Rånad och tvingad till alternativet att prostituera sig istället för att bli våldtagen av de mestadels manliga passagerarna går hon i land i San Francisco utan något mer än de kläder hon bär. Angel tas in av ”The Duchess”, ägaren till The Palace, en bordell i Pair-a-Dice, och blir en exklusiv, högt prissatt prostituerad. Angel är anställd av hertiginnan och bevakas ständigt, och hennes magra inkomster hålls hemliga för henne. Hennes enda tröst är Lucky, en prostituerad kollega som ofta är berusad. Lucky påminner Angel om hennes mor.
Michael Hosea ser Angel för första gången när han åker till Pair-A-Dice för att sälja varor. Han är redo att åka när Gud säger till Michael att ”hon är den rätta”, den kvinna som han är ämnad att gifta sig med. Michael upptäcker snart till sin chock att Angel är en prostituerad. Michael är fortfarande fast besluten att följa Guds befallning och gifta sig med Angel och betalar den höga avgiften för hennes tjänster i hopp om att övertyga henne att åka med honom. Hon avvisar envist hans erbjudande. Michael är modlös och ifrågasätter Gud, men lyder ändå. Han betalar Angels arvode för tre på varandra följande nätter och pratar och resonerar med henne tills hans tid och pengar är slut. Angel behåller sin kalla, sarkastiska fasad för att avskräcka honom, eftersom hon vill undkomma den smärta som hans ord orsakar henne. Samtidigt verkar hon inte kunna fly från tankarna på Michael och sitt stigande hopp om ett liv utanför palatset.
Efter den sista natten med Angel blir Michael frustrerad och lämnar Pair-A-Dice. Några dagar senare återvänder han till Pair-A-Dice, oförmögen att ignorera Guds befallning längre. Han finner Angel nästan död efter en brutal misshandel som Magowan, hertiginnans livvakt, gett henne. Michael är beredd att använda alla medel för att bevara Angels liv och ber henne att gifta sig med honom så att han kan ta med henne till sin stuga. Angel är knappt vid medvetande men går med på det och mumlar ”Varför inte?”
Michael vårdar Angel i sin stuga. Angel förblir knappt tolerant mot arrangemanget medan det tjänar hennes behov. Michael uthärdar Angels hårdhet och förblir trogen sin nya fru och Guds plan. Michaels änkeman och svåger, Paul, återvänder hem från fruktlös guldvaskning i Sierras. Paul känner genast igen Angel som den dyrbara prostituerade från palatset. Paul tror att Angel har lurat Michael och behandlar henne illa. Paul försöker berätta för Michael om Angels yrke, men gör honom bara arg. Paul tror att Michael gifte sig med Angel av blind lust och utan att veta att hon var prostituerad. Under sitt besök tror Paul att det finns en spricka mellan honom och Michael på grund av Angel, utan att veta att Michael älskar Angel trots hennes förflutna och att det är han som orsakar sprickan mellan dem.
När hon äntligen läker från sina sår försöker Angel fly från Michael i hopp om att kunna återvända till bordellen för att få tillbaka sina pengar som hertiginnan hade undanhållit henne och insisterat på att de användes till kläder och mat som Angel fick. När Paul ger sig av för att sälja produkterna från sin mark tillbaka i Pair-A-Dice ser Angel detta som ett sätt för henne att fly. Medan Michael är ute och arbetar på fältet springer hon efter Pauls vagn. Han går med på att ta henne med sig om hon betalar tillbaka med sitt enda betalningsmedel: sig själv. Han äcklas ännu mer av hennes handlingar efter att de har sex tillsammans och hoppas att det är det sista han kommer att se av henne någonsin igen.
När hon återvänder till Pair-A-Dice ser hon att palatset har brunnit ner och dödat hennes käraste kompanjon Lucky och en annan prostituerad vid namn Mai Ling. Eftersom hon inte har någon annanstans att ta vägen börjar hon arbeta ovanför en bar – återigen som prostituerad. Även om hon avskyr att bli sedd som en sköka har hon inga andra färdigheter att försörja sig på. En ilsken Michael hittar henne i ett rum med en kund och kämpar sig ut ur baren som är fylld av berusade män som väntar på sin tur med Angel.
De återvänder till stugan där Michael förlitar sig på Gud för att bearbeta sin ilska över hennes otrohet. Angel börjar utveckla kärleksfulla känslor för Michael, vilket hon inte kan förstå eftersom hon aldrig har tillåtit sig själv att älska någon man, för ”Guds sanning” säger att de kommer att utnyttja henne eller överge henne, precis som hennes far. Trots hennes fortsatta kyla älskar Michael henne villkorslöst. När han visar henne en soluppgång säger han: ”Det är vad jag vill ge dig”. Angel känner att hon blir mjukhjärtad dag för dag, men i sin osäkerhet och rädsla vägrar hon att dela det med Michael. Hon känner en djup skam över sin ”orenhet”. Hon mjukas upp av Michaels kärlek men kan inte se sig själv som värdig den. Trots att de har legat med varandra regelbundet är Angel mycket avskärmad från upplevelsen av sex, men när hon en natt upplever samma glädje och njutning som Michael (”And she flew, Michael with her, into the heavens…”) skrämmer det henne.
Hon flyr ännu en gång, den här gången till Sacramento; på vägen dit blir hon erbjuden skjuts av en gammal man som säljer krukor. När hon kommer fram till Sacramento och letar efter arbete möter hon återigen Joseph Hochschild, som har byggt upp sin nya butik, och hon stannar hos honom, eftersom hon vet att han är en god vän till Michael. Hon arbetar för honom i hans butik tillsammans med hans fru och mor. När en beställning kommer in till Michael försöker hon gå, men Joseph håller henne sysselsatt och låter henne vänta längre. När hon avslutar sitt arbete och går för att stänga butiken står Michael i dörröppningen och har återigen kommit tillbaka för att hämta henne. Hon erkänner att hon är rädd vid tanken på att vara kär i honom, men han lugnar henne och tar med henne hem.
När de kommer tillbaka till dalen möter de familjen Altman, som har ett trasigt hjul och är strandsatta vid sidan av vägen. Michael hjälper till att laga deras vagn och bjuder in dem att stanna i deras stuga. Angel avslöjar för mrs Altman och den äldsta dottern Miriam att hon träffade Michael på en bordell och blir förvånad över att de bara har medlidande för henne i stället för förakt. De kommer varandra nära och Angel fattar tycke för den äldsta dottern, Miriam, som börjar tycka om Paul, som bor i andra änden av dalen. När Angel ser Miriam prata med Michael antar hon att de har känslor för varandra och drar slutsatsen att de skulle bli ett mycket bättre par än hon och Michael. Paul vill att Michael också ska sluta med Miriam, men har också börjat utveckla känslor för den 16-åriga Miriam. Han förnekar sina känslor bara för att han vill se Michael med Miriam i stället för Angel.
Under tiden avslöjas i en flashback att Angel under sin tid som Hertigs älskarinna blev gravid två gånger och båda gångerna lät en rasande Hertig en läkare avbryta det, och vidtog åtgärder den andra gången för att se till att hon aldrig kan bli gravid igen. Angel avslöjar senare detta för en förkrossad Michael. Hon avslöjar också att hon en gång hade sex med sin egen far, som kom till hennes bordell, i ett försök att hämnas för att han lämnade hennes mor. Hon är överväldigad av skuldkänslor över det okänsliga sätt på vilket hon behandlade honom. Hon vet att hon har chockat sin man och känner sig skyldig för att hon inte har kunnat ge Michael några egna barn, vilket hon vet att han längtar efter, och Angel flyr än en gång och lämnar kvar sin vigselring i hopp om att Michael ska gifta sig med Miriam och få barn med henne. Michael är förkrossad, men säger att han inte kommer att jaga Angel igen om hon inte vill vara med honom.
Den här gången åker Angel till San Francisco. När hon kommer dit får hon ett jobb hos en snäll man som heter Virgil. Han tar in henne som kock på sitt café och tar hand om henne. Men efter månader av deras hårda arbete brinner kaféet ner, och med det alla Angel’s besparingar och ägodelar. När Angel ser branden på gatan hör hon en bekant röst – det är Duke som hälsar på henne. Angel är rädd att han skulle skada Virgil, som verkar misstänksam mot Duke, och går med på att följa med honom tillbaka.
När Angel återigen är under Dukes makt förväntas hon återuppta sitt liv som prostituerad. Dukes sexuella preferens är dock unga flickor, och han ber Angel att ta hand om sina blivande ”följeslagare”, men först efter en veckas prostitution. Angel ska presenteras för en skara män. Hon börjar brottas i sitt sinne och ropar internt till Gud. Hon är beredd att gå upp på scenen för att underhålla männen. När hon äntligen står inför dem säger Guds röst till henne att sjunga och hon börjar sjunga ”Rock of Ages” för den förundrade och förvirrade publiken. En gråhårig man sjunger tillsammans med henne och går fram till scenen. Hon glömmer orden i sången och han avslutar den.
Efter presentationen tillrättavisar Duke Angel. Han möts dock av den sjungande främlingen från publiken. Han hotar med att Duke ska hängas om han lägger ett enda finger på Angel. Med detta eskorterar mannen Angel ut, och på deras väg ut räddar Angel två andra unga flickor som Duke använde som offer. När männen på bordellen ser de två unga flickorna med Angel blir de rasande och förstör stället. Mannen tar med dem till sitt hus där hans fru och dotter tar hand om dem. Jonathan Axle, mannen som räddade henne, är en rik och respekterad bankman med en solid kristen familj. Angel börjar gå i kyrkan med familjen Axle och blir förtjust i dem.
Under tiden avslöjar Miriam att hon är kär i Paul, och de två gifter sig medan Angel är borta. Michael väntar fortfarande på att Angel ska återvända och ber ständigt för att hon ska komma tillbaka. När Miriam ser hans sorg insisterar hon på att Paul ska gå och hitta Angel, men Paul, som fortfarande är full av förakt för den kvinna han tror att Angel är, vägrar.
Angel erkänner så småningom Guds kärlek till henne och tar emot Kristus i sitt hjärta. Hon börjar arbeta med prostituerade genom att hjälpa dem att lämna sina gamla vanor och lära sig nya förmågor som kan hjälpa dem att försörja sig. Susanna Axle, dotter till Jonathan Axle, hjälper henne att sköta pensionatet.
Paul ger slutligen efter för Miriam och åker till San Francisco för att leta efter Angel. Han ser henne med en gammal man – Jonathan Axle – och tror att han är en kund och hon fortfarande prostituerad. Han är rasande över att han kom ända hit och börjar hitta på ursäkter att ge Miriam så att han inte behöver såra henne genom att berätta för henne att Angel är en prostituerad. Nästa dag bestämmer han sig dock för att gå upp till huset och konfronterar Angel. Först uppträder han kallt, föraktfullt och sarkastiskt, men förvånas av hennes ödmjukhet och den genuina kärlek hon hyser för Michael. Han blir chockad när han får veta att hon lämnade Michael i hopp om att han skulle gifta sig med Miriam så att han kunde få barn. När hon upptäcker att Paul är gift med Miriam och att Michael fortfarande väntar på henne efter tre års frånvaro faller hela hennes värld samman och hon känner sig inte längre motiverad att stanna i San Francisco.
Hon fattar till slut beslutet att lämna Susanna som ansvarig för huset och går tillbaka till Michael. Hon överraskar honom på fältet där han arbetar, knäböjer vid hans fötter och gråter. Hon är bedrövad över att se hur förlusten av henne har haft en djupgående effekt på Michael. Hon avslöjar att hennes riktiga namn är ”Sarah”. Michael, som själv gråter, tar emot henne med vänlig, ren och förlåtande kärlek och förklarar att han tror att avslöjandet av hennes namn är ett löfte från Gud om att de en dag kommer att kunna få barn (Sara i Bibeln var en ofruktbar kvinna som genom Guds nåd så småningom kunde få en son). Äntligen börjar de ett nytt liv tillsammans, det liv de har drömt om.
I epilogen sägs det att Michael och Sarah senare fick fyra barn.