In una stanza buia nella Milano del 1863 due amanti sono a letto insieme. Il bel capitano Giorno interrompe l'amplesso per comunicare alla donna, Clara, di essere stato trasferito in un remoto avamposto militare; la donna, sposata con un altro uomo, si dispera. Arrivato nel nuovo luogo di lavoro, Giorgio conosce due dei suoi superiori, il colonnello Ricci ed il dottor Tambourri, dei quali è spesso ospite a cena; mentre esprime il dolore per la lontananza di Clara e legge l'appassionata lettera della donna, è interrotto dalle grida provenienti dal piano superiore che, come il dottore gli spiega, appartengono alla signora Fosca, la malata cugina di Ricci. Giorgio si offre di prestare alcuni dei suoi libri alla donna, accanita lettrice.
Mentre Giorgio fa amicizia con il dottore, apprende nuove informazioni su Fosca, una donna raffinata e colta, affetta da una vasta gamma di malattie, tra le quali terribili attacchi nervosi che provocano le urla strazianti. Giorgio, che per la sua sensibilità si sente fuori posto nell'accampamento, fa conoscenza di Fosca qualche giorno dopo a cena, quando la donna gli riconsegna i libri ricevuti in prestito; il capitano è colpito dalla sensibilità della donna, ma ancora di più dalla sua bruttezza: Fosca, infatti, porta sul viso gli evidenti segni di una lunga ed estenuante malattia. Fosca racconto a Giorgio della sua passione per la lettura come metodo per sfuggire al mondo e alla sua vita sempre in pericolo. Il loro incontro è bruscamente interrotto da un attacco isterico della donna.
Qualche giorno dopo, Giorgio, Fosca, Ricci e Tambourri passeggiano per il parco del vecchio castello in rovina; mentre sono da soli, Fosca interroga Giorgio sull'amore e lo supplica di essere suo amico, avendolo riconosciuto come un'anima sensibile al pari della sua; il bel capitano, turbato, accetta. Qualche giorno dopo, mentre Giorgio si accinge a partire per Milano per una licenza di cinque giorni, Fosca lo blocca, si getta ai suoi piedi ed implora il suo amore ed una lettera da parte sua durante la breve assenza. Il giorno seguente, mentre il capitano fa l'amore con Clara, Fosca riceve una sua lettera, in cui l'uomo rifiuta gentilmente il suo amore.
Tornato all'avamposto, Giorgio affronta Fosca e, in un'animata discussione, rifiuta ancora una volta la donna e decide di tagliare ogni legame con lei; la settimana successiva il dottore gli comunica che Fosca è in punto di morte. Sconvolto dai sensi di colpa e incoraggiato dal dottore, Giorgio si reca nella stanza della malata. Fosca, lieta di vederlo, gli chiede di stendersi al suo fianco mentre dorme e, al mattino, gli chiede di scriverle una lettera sotto sua dettatura, un'immaginaria lettera d'amore scritta da Giorgio stesso.
Mentre strane voci si aggirano tra i soldati sul conto di Giorgio e Fosca, Ricci ringrazia il capitano per la sua gentilezza e gli racconta la storia della cugina, i cui genitori l'avevano cresciuto come un figlio, una volta rimasto orfano. Fosca, da giovane, si era sposata con un presunto conte austriaco, che l'aveva ripetutamente tradita ed estorto ai suoceri tutto il denaro possibile, per poi sparire, provocando così la malattia della donna.
Mentre Giorgio scrive una lettera a Clara, Fosca lo raggiunge sulla montagna su cui il soldato si era recato; il capitano, furioso, aggredisce verbalmente la donna, causandone lo svenimento. Il turbamento che Fosca ha suscitato in lui e la tensione per le continue molestie gettano Giorgio nello sconforto e l'uomo, tormentato dall'incubo di essere trascinato in una tomba dalla donna, si ammala gravemente. Per favorirne la convalescenza, Tambourri concede a Giorgio una licenza di quaranta giorni da trascorre a Milano. Una volta salito sul treno che lo condurrà da Clara, Giorgio si accorge che anche Fosca e riuscita a salirvi. Demoralizzato, Giorgio la supplica di lasciarlo in pace, ma la donna risponde che l'amore che nutre nei suoi confronti non è volontario, ma parte stessa del suo essere. Commosso, Giorgio riporta Fosca a casa, ma il dottore l'avverte che la vicenda con Fosca finirà per ucciderlo, se lui non allontana la donna.
Giunto a Milano, Giorgio supplica Clara di fuggire con lui, ma la donna rifiuta, avendo un figlio piccolo di cui occuparsi. Il capitano, deluso, torna all'accampamento; qui, durante la festa di Natale riceve una lettera di Clara che gli chiede di aspettare che il bambino cresca, poi lei sarà pronta a fuggire con lui; con una seconda lettera, Giorgio scopre di essere stato trasferito dal quartier generale in un altro accampamento. Fosca, sconvolta dalla notizia, si getta nelle braccia dell'uomo, suscitando lo scalpore tra i presenti e la rabbia in Ricci.
Ricci, dopo aver condotto la cugina in camera, scopre la lettera che la donna ha fatto scrivere a Giorgio e, fraintendendo la situazione, si sente tradito e sfida il capitano a duello per la mattina seguente. Il dottore si offre di intercedere presso Ricci, ma Giorgio, più sorpreso dal fatto di non essere distrutto per la separazione di Clara che per il duello, gli chiede di combinargli un incontro con Fosca per la notte stessa, accorgendosi di essere perdutamente innamorato di quella tenace, stremata, brutta donna malata che gli ha mostrato il vero volto dell'amore.
Raggiunta Fosca, Giorgio le dichiara tutto il suo amore per lei e la supplica di perdonare il suo comportamento; commossa dalla gioia, Fosca rinnova i suoi giuramenti d'amore e consuma la propria passione con il capitano. Il mattino seguente, Giorgio e Ricci duellano: il capitano ferisce gravemente il proprio superiore, per poi crollare al suolo, vittima delle crisi nervose che colpivano Fosca.
Tre mesi dopo, Giorgio riceve in ospedale la lettera del dottor Tambourri in cui gli annunciata la morte di Fosca, spirata serenamente pochi giorni dopo la sua partenza. L'uomo legge attentamente l'ultima lettera che la donna gli ha scritto e che il dottore ha incluso alla sua.