杜牧四十歲時,受當時宰相李德裕的排擠,被外放為黃州刺史。公元844年,41歲的杜牧被貶任池州刺史。第2年清明時節,心境低落的他便想著去看望歌妓程氏。
唐宣宗於公元846年即位後,將李黨盡數貶謫,牛黨得勢。公元848年,45歲的杜牧在屬於“牛黨”的宰相周墀幫助下,從睦州返回京城,任司勳員外郎,後轉任吏部員外郎。但杜牧依然沒有被重用。杜牧多次以工資太低不能養家為理由,提出想去杭州或者湖州任職。
程氏是杜牧之前任蘇州刺史時的故人,深得他喜歡。於是,杜牧左遷到池州(也就是今天的安徽貴池)後,在清明時節得知程氏隱居於杏花村時,杜牧便打馬過去尋找,由此寫下千古絕唱《清明》。