Tung iniziò a correre nel 1997 con i kart; nel 2003 vince la Formula BMW Asia (con 10 vittorie su 14 gare) ottenendo così la possibilità di testare una Williams di Formula 1. Nel 2004 passa alla ATS Formel 3 Cup dove giunge settimo nella graduatoria finale, pur conquistando alcune vittorie; resta nello stesso campionato anche nel 2005, terminando terzo prima di fare suo il titolo nel 2006, con 9 vittorie, 4 pole position e 5 giri veloci. Nel 2007 la BCN Competición annuncia l'ingaggio di Tung per il campionato di GP2 assieme a Sakon Yamamoto; il miglior risultato è il quarto posto nella gara sprint in Belgio; conclude la stagione al 23º posto. Nel Gran Premio di Cina 2007 la BMW Sauber annuncia l'ingaggio del pilota cinese come test driver per il resto della stagione. Nel 2008 Tung guida sempre per la Trident Racing nel campionato di GP2 Asia (in cui conquista un solo punto) e in quello di GP2, dove conquista un secondo posto nella gara sprint di Monaco. Nel 2009 passa alla Superleague Formula; corre le prime tre gare col Atlético Madrid e poi, per il resto della stagione, con il Galatasaray, con il quale ottiene una vittoria nella gara di Jarama. Nel dicembre 2009 partecipa con la Renault al test per giovani piloti; a gennaio ne viene comunicato l'ingaggio da parte del team francese come collaudatore per la stagione 2010; nello stesso anno partecipa al campionato GP2 con la DAMS. Nel 2011, oltre a restare collaudatore della Renault, partecipa a due gare del campionato IndyCar con la scuderia Dragon Racing: la 500 Miglia di Indianapolis, al posto di Paul Tracy, dove però non riesce a qualificarsi, e il Gran Premio di Sonoma dove ottiene il 27º posto. Nel 2013 passa nel mondiale Endurance con il team KCMG; dal 2014 corre con il team OAK Racing. Partecipa al Campionato di Formula E 2014-2015 con il team China Racing.