Dopo aver iniziato a giocare a calcio nel BSG Motor Sonneberg, passò alle giovanili del Rot-Weiss Erfurt. Nel 1971 fu acquistato dalla Dinamo Dresda con cui disputò la sua intera carriera. Fino al 1988 collezionò 366 presenze in DDR-Oberliga e segnò 49 reti, al secondo posto dietro ad Hans-Jürgen Dörner per il numero di presenze con la Dinamo.
Nazionale
Con la Germania Est vanta 58 presenze (di cui quattro non ufficiali) impreziosite da quattro reti. Debuttò il 18 settembre 1971 a Lipsia contro il Messico (1-1) e giocò la sua ultima partita il 12 settembre 1984 a Zwickau contro la Grecia (1-0).
Nell'aprile 1990, subentrò a Eduard Geyer nella panchina della Dinamo Dresda e poche settimane dopo portò a vincere alla squadra il suo ottavo campionato e la sua settima FDGB Pokal. L'annata successiva, nonostante le cessioni di Ulf Kirsten e Matthias Sammer, Häfner guidò la compagine al secondo posto finale dietro all'Hansa Rostock nell'ultimo campionato della Germania Est prima della riunificazione dei campionati. Successivamente allenò il Chemnitzer dal 1993 al 1996.