町の高い柱の上に、「幸福の王子」と呼ばれる美しい像が立っていた。全身は純金で覆われ、両目には青いサファイア、剣の柄には真っ赤なルビーが輝いていた。生前の彼は悲しみなど知る由もない風に、宮殿の中で毎日楽しく暮らしていたのである。しかし、死後に高い場所へ立てられてからは、町の貧しさと人々の悲惨な暮らしがすべて見渡せるようになり、王子の心は痛むばかりであった。
ある秋の夜、エジプトへ向かい遅れていた一羽のツバメが、王子の足元で休むことにした。ツバメが眠りにつこうかというその時、突然冷たいしずくが落ちてきた。驚いて見上げると、それは王子の流す涙にほかならなかった。「私の代わりに、あの病気の子供を持つ貧しい母親にルビーを届けてくれないか」と王子がすがるように頼むので、ツバメは一晩だけ留まることにしたのである。
翌日ツバメがエジプトへ旅立とうとすると、王子は再び引き留めた。「若くて才能のある劇作家が、寒さと飢えで行き倒れつつあるのだ。私の片目であるサファイアを持っていってほしい」ツバメは断りきれず、さらに次の日も、マッチ売りの少女を救うために残りのサファイアを運んだ。目の見えなくなった王子を一人残して旅立つわけにはいかず、ツバメはずっと王子のそばにいると決心した。
冬が近づくにつれて寒さは増していくものの、ツバメは町中を飛び回り、貧しい人々の様子を王子に伝えた。「私の体を覆っている金をすべて剥がして、貧しい人々に分けてあげてほしい」という王子の言葉に応じ、ツバメは毎日少しずつ金箔を運び続けた。金がすべて剥がれ落ちた王子は、ただの灰色で粗末な像にすぎなくなってしまったが、救われた貧しい人々には笑顔が戻ったのである。
やがて雪が降り積もるようになると、寒さに耐え抜いたツバメもついに力尽き、王子の足元で静かに息を引き取った。その途端、王子の鉛の心臓が悲しみのあまり二つに割れてしまった。春になり、みすぼらしくなった像は市長さたちによって取り壊されるほかなかった。しかし、天国から地上を見下ろしていた神様は、この最も尊い魂を持ったツバメと王子の心臓を、永遠の宝物として天国へと招き入れたのであった。