Yu Hai maakte in mei 2004 zijn debuut in het betaald voetbal bij Shaanxi Chanba. Hij speelde bij die club voornamelijk een reserverol en kwam meestal niet voor in de basisopstelling. In twee seizoenen kwam hij desalniettemin tot 36 optredens op het hoogste competitieniveau van China.[3] Voor het seizoen 2006/07 trok Yu in juli 2006[1] naar Nederland, waar hij een contract voor tweeënhalf jaar tekende bij Vitesse. In de 29ste speelronde van dat seizoen maakte Yu Hai zijn debuut voor Vitesse in de competitiewedstrijd tegen FC Utrecht (2–0 verlies). Na 54 minuten viel hij in voor Youssouf Hersi.[4] In twee seizoenen kwam Yu tot tien optredens in de Nederlandse competitie; daarnaast speelde hij vijfmaal een play off-wedstrijd voor Europees voetbal.[2] SBV Vitesse liet Yai in de zomer van 2008 transfervrij vertrekken.[1] Vanaf dat moment speelde hij voor het Chinese Guizhou Renhe – dat tot 2011 Shaanxi Chanba heette – waarmee Yu vooralsnog in de competitie niet hoger eindigde dan een derde (2004) en vierde positie (2012 en 2013).[3] Met Guizhou nam Hai deel aan de AFC Champions League in 2013 en 2014.[5] Op 27 februari 2015 werd Yu getransfereerd aan Shanghai SIPG.[6]
Yu maakte in het jaar na zijn periode in Nederland zijn debuut in het Chinees voetbalelftal. Op 4 juni 2009 speelde hij tegen Saoedi-Arabië (1–4 verlies) zijn eerste interland.[3] In zijn tweede wedstrijd voor China, op 25 juli 2009 tegen Kirgizië (3–0 winst), maakte hij zijn eerste interlanddoelpunt. Een jaar later werd Hai opgenomen in de selectie voor het Oost-Aziatisch kampioenschap voetbal 2010, dat door China werd gewonnen. Yu Hai speelde in twee wedstrijden en was eenmaal trefzeker.[7] Sinds zijn debuut in 2009 speelde hij meer dan zeventig interlands en nam hij deel aan de Aziatische kampioenschappen voetbal in 2011 en 2015; bij beide toernooien maakte hij minstens één doelpunt.[5]