Imparò gli scacchi piuttosto tardi, all'età di 17 anni, ma già all'età di 20 anni vinse il suo primo campionato cinese. Lo vinse in totale otto volte (1981, 1984, 1986, 1987, 1988, 1989, 1994, 1996), record del campionato.
Divenne nel 1993 il terzo grande maestro cinese, dopo Ye Rongguang e Xie Jun.
In gennaio del 2000 fu il primo cinese a superare la soglia dei 2600 punti Elo. Raggiunse il massimo rating in aprile del 2003, con 2684 punti.
Partecipò con la nazionale cinese a 12 olimpiadi degli scacchi dal 1982 al 2004 (sei volte in 1ª scacchiera), vincendo una medaglia d'argento individuale alle olimpiadi di Lucerna 1982.
Vinse tre volte (nel 1995, 1999 e 2001) la Dato Tan Chin Nam Cup.