Empezó nadando en los Juegos Olímpicos de Atenas 2004, donde participó en la prueba de 400 m libre, nadando en la final pero acabando último de la misma. Ganó su primera medalla, siendo de plata, en el Campeonato Mundial de Natación de 2005. Volvió a participar en unos Juegos Olímpicos en 2008, consiguiendo su primera medalla olímpica en la prueba de 200 m mariposa. Finalizó tras Michael Phelps y László Cseh, con un tiempo de 1:52.97, récord asiático. En los Juegos Olímpicos de Londres 2012 volvió a ser medallista olímpico, ganando una medalla de plata y otra de bronce en los 400 m libres y 50 m libre respectivamente.