第一幕
故事发生在 1800 年的罗马。越狱政治犯凯塞利•安杰洛蒂躲进教堂,他的妹妹阿塔凡蒂侯爵夫人已经安排好一把钥匙,让安杰洛蒂可以暂时躲进教堂内的小礼拜堂,穿上妹妹为他准备的女服,以备逃跑,因为警察总督斯卡比亚男爵追击他。 正在为教堂作画的画家马里奥•卡伐拉多西上场,露出一幅玛丽亚•玛达莱娜的画像。画像上的玛丽亚十分像近日每天来祈祷的阿塔凡蒂侯爵夫人。
逃亡者请求画家救助。适巧托斯卡前来教堂寻找卡伐拉多西,见大门反锁,于是在门外大声呼喊,卡伐拉多西见状赶紧教安杰洛提再躲进小礼拜堂内,因为他不想让托斯卡知道太多事。托斯卡进来后,对卡伐拉多西迟迟未来开门存有疑心。托斯卡看见了画像,感到画像上的玛丽亚似乎像一个人,又起了疑心。卡伐拉多西花了好大的劲才劝住了托斯卡,托斯卡这才满意地离去。
卡伐拉多西告诉安杰洛蒂,别墅花园里有一口井,可供一人藏身。这时从恩格堡传来隆隆炮声,那是有逃犯越狱的信号。
教堂司事和教士以及唱诗班团员一拥而进,他们正为原本要入侵意大利的拿破仑法军被击退而欢喜不已。此时,警察总督斯卡比亚率领一群警察前来教堂搜索安杰洛蒂踪迹,在查问之下,他确定安杰洛蒂是在卡伐拉多西的协助之下展开逃亡。他在阿塔凡蒂家的礼拜堂发现侯爵夫人的扇子。一个罪恶的计划在他的头脑中产生。原来他早就看上了托斯卡,他要利用这把扇子一箭双雕,把画家送上绞架,把托斯卡搂人怀中。他先用这把侯爵夫人的折扇挑起托斯卡的妒火,又让手下人跟踪托斯卡,以便找到卡伐拉多西。
第二幕
斯卡比亚在焦急地等托斯卡自投罗网。他写了一张便条,点名让托斯卡到他的寓所演出。便衣警察史波雷塔带回消息说,虽然还没有发现安杰洛蒂的踪迹,但他的手下已逮捕了卡伐拉多西。卡伐拉多西拒不承认帮助过安杰洛蒂。画家悄悄对托斯卡说千万不能把安杰洛蒂说出来。但当她听到情人受刑时发出的阵阵惨叫时,托斯卡终于招出了逃犯的藏匿处。
斯卡比亚告知托斯卡:现在只有一个办法还能救回卡伐拉多西的性命,那就是委身斯卡比亚。斯卡比亚的方法是让卡伐拉多西在处决时假装死去。托斯卡决定满足斯卡比亚的要求。斯卡比亚便交给托斯卡两张通行证,放他们远走高飞。托斯卡答应了,拿到通行证后,她趁斯卡比亚不备,将尖刀刺入男爵的心脏。
第三幕
卡伐拉多西在行刑队的带领下即将步入刑场。他请求刽子手将一封信交给心爱的托斯卡。
这时,托斯卡赶到刑场,她告诉卡伐拉多西,已经和斯卡比亚达成交易,她让卡伐拉多西枪响之后到下装死,然后两个人就可以远走高飞了。卡伐拉多西闻言大受感动。士兵们带走卡伐拉多西,到城堡上去执行枪决。行刑队在天台上执行了对卡瓦拉多西的枪决,数声枪响过后,卡瓦拉多西倒在地上。行刑的人离去后,托斯卡急忙跑到爱人身边,才发现他已经气绝多时。
此时警察发现斯卡比亚遭人刺杀,率人前来捉拿托斯卡,托斯卡在无路可去之下,纵身跳墙自尽,追随情人而去!