Ia memulai kariernya pada musim 1998-99 bersama tim kampung halamannya, PSIS Semarang, meski tidak pernah bermain di tim utama. Ia pindah ke Persijatim Sriwijaya dan sempat masuk roster selama dua musim tetapi tidak pernah dimainkan.
Pada tahun 2002, ia pindah ke ibu kota, Jakarta, untuk bermain bersama Persija Jakarta, di mana ia mencatatkan 23 penampilan dan mencetak satu gol. Hal tersebut menarik perhatian klub lain, termasuk Persikota Tangerang. Dia pindah ke Tangerang dan bertahan di sana selama dua musim, bermain dalam 40 pertandingan dan mencetak 20 gol. Masa depannya tampak cerah, sebagai salah satu penyerang utama Timnas Indonesia. Ia pindah pada 2004 ke Persebaya Surabaya, tetapi gagal tampil mengesankan—8 penampilan dan dua gol—sehingga dijual ke Arema Malang di akhir musim.
Bersama Arema, Doni bermain secara sporadis: sebelas caps dan empat gol. Dia tetap bersama Persib Bandung pada tahun 2006, kemudian pada tahun yang sama pindah ke divisi bawah Persitara Jakarta Utara, di mana sebagai penyerang utama dia bermain reguler dan mencetak empat gol.
Prestasi dan penghargaan
Individu
Pencetak gol terbanyak pada Kejuaraan Sepak Bola Asia Tenggara 2000
Klub
Persebaya Surabaya
Liga Indonesia Divisi 2: 2004
Internasional
Indonesia
AFF Championship Runner-up: 2000
AFF Championship Runner-up: 2002
Karier internasional
Tim nasional
Penampilan dan gol berdasarkan tim nasional dan tahun