在漢武帝時代,有一位大臣叫東方朔,精通天文地理。一天他到宮中的御花園賞梅,不料看見一位宮女正要跳井自殺,東方朔連忙上前制止,並問原因。原來這位宮女叫做「元宵」,家住長安西北,因為進宮後,每逢過節就很想念家中的親人,但又無法出宮去探視親人,因此愈想愈傷心,才會想要自殺。東方朔知道後,覺得元宵姑娘很可憐,就決定要幫她,並問清楚元宵的家在何處就告辭離去了。第二天,東方朔到了元宵的家中,將情形說了一遍,並告訴他們他的辦法......⋯⋯。
幾天後,東方朔假扮為算命師來為長安城的人民算命,因此紛紛前往,想要讓東方朔為自己算算命。沒想到,每個人算出來的結果都是正月十五都會遭到火焚身;老百姓聽完很害怕,紛紛求東方朔救大家,東方朔說:「正月十五火焚身,就是指那天會有一位其粉色銀驢的姑娘,奉只來燒長安城,但只要在正月十三那天,城裡的白法老人們都到城西十里鋪大道等候,天黑時,那姑娘就會來,只要跪地祈求,全城便可得救。」
果然在正月十三那天來了一位其粉色銀驢的年輕女子(其實是元宵的妹妹喬裝的),全城的白髮老人都求道:「求仙姑不要燒城!」女子說:「我是奉旨燒城的,若玉帝看不見火,豈不怪罪於我!」「這樣吧!你們去求你們的皇帝想辦法吧!」說完便離去了。第二天,東方朔面見漢武帝,並將人民的心聲上奏:「長安在劫,火燒帝厥,十五天火,焰紅宵夜。」漢武帝聽完也不知如何是好,便請東方朔想辦法。東方朔說:「聽說火神愛吃湯圓,就叫全城百姓做湯圓供奉,另外,還要京都臣民一起做燈,十五晚上掛滿大街小巷,同時燃放煙花爆竹,到時候,滿城的紅光、火球橫飛,這樣玉帝就會以為那是長安大火,這樣一定能瞞過祂。」漢武帝聽完大樂道:「先生計策果然是妙計!」東方朔接著說:「皇上聖明,但是皇宮中不宜如此。」武帝說:「這簡單,只要那天晚上,讓宮中的嬪妃及侍衛都到街上去,混在百姓當中,這樣玉帝就不知道要燒誰了!」東方朔又說:「妙極!還有就是聽說宮女元宵做的湯圓最好,十五的晚上讓她提著大宮燈,把名字寫在上頭,在前面開道,臣奉湯圓在後,穿過大街小巷敬奉火神。」武帝:「這事就偏勞先生了。」
十五的晚上元宵姑娘照東方朔的指示,果然見著了自己的親人;當天夜裡武帝見到百姓玩得如此盡興,因此下令每年正月十五夜晚都要如此。從此以後,這個習俗就沿襲下來,也正因為正月十五供奉的湯圓是叫做元宵的姑娘所做的,所以後來人們也把湯圓叫做「元宵」,正月十五的上元節也稱做「元宵節」。