Der britische Schriftsteller Oscar Wilde (Stephen Fry) kehrt im Jahre 1882 von einer Vortragsreise aus den USA zurück nach Europa. Er heiratet Constance Lloyd (Jennifer Ehle) und hat mit ihr zwei Söhne. Der exzentrische Künstler ist ebenso erfolgreicher Theaterautor und feiert die Premiere seiner Theaterstücke „Lady Windermere’s Fan“ und „The Importance of Being Ernest“. Doch sein Ruf gerät immer mehr zu bröckeln, als bekannt wird, dass er eine Affäre mit Robert Ross (Michael Sheen) und dem jungen Lord Alfred Douglas (Jude Law) hat. Lord Alfreds Vater, der Marquess of Ross (Tom Wilkinson) untersagt ihnen eine Beziehung und provoziert damit Wilde, der ihn wegen Beleidigung verklagen möchte. Doch vor Gericht wird Wilde wegen Unzucht zu zwei Jahren Zuchthaus verurteilt und kommt als gebrochener und finanziell ruinierter Mann aus dem Gefängnis.