Seine Fußballerkarriere begann bereits im Alter von 16 Jahren. Shojaei spielte zwei Saisons in der Jugendmannschaft von Saipa Teheran. Mit 18 erhielt er im Jahr 2002 seinen ersten Profivertrag bei Sanat Naft Abadan. In der Spielzeit 2002/2003 lief es für Abadan nicht gut und die Mannschaft stieg am Saisonende in die Azadegan League ab. Nach dieser Spielzeit kehrte Shojaei nach Teheran zurück und schloss sich Saipa Teheran an. Er unterschrieb dort einen Dreijahresvertrag.
Shojaei machte sich in den drei Spielzeiten bei Saipa in der höchsten iranischen Spielklasse einen guten Namen bei den Fans. Seine Fähigkeiten entgingen auch nicht Branko Ivanković, dem damaligen Nationaltrainer Irans. Nach der Spielzeit 2005/2006 zog es ihn zur Überraschung vieler Fans und Fachleute ins Ausland zu Al-Schardscha (V.A. Emirate).[3] Am 23. Juni 2008 verließ Shojaei Al Sharjah in Richtung Spanien zu CA Osasuna, die ihn bis 2011 verpflichteten.[4]
Shojaei hat einen Vertrag bis 2014 bei UD Las Palmas in der zweiten spanischen Liga unterschrieben.
Da Shojaei 2017 für seinen Club Panionios Athen in der Europa-League-Qualifikation gegen den israelischen Klub Maccabi Tel Aviv gespielt hatte, wurden er und sein iranischer Teamkollege Ehsan Hajsafi am 10. August 2017 vom iranischen Sportministerium aus der Nationalmannschaft bis mindestens nach der Fußball-Weltmeisterschaft 2018 in Russland ausgeschlossen.[5] Nach Protesten von Fans bzw. ehemaligen Nationalspielern, die wegen der politischen Einmischung eine FIFA-Sperre des Iran für die WM 2018 befürchteten, kündigte Irans Sportminister an, der Nationale Sicherheitsrat des Landes werde sich mit dem Fall befassen.[6]
Er stand schließlich im Kader des Iran für die Fußball-Weltmeisterschaft 2018. Im ersten Gruppenspiel gegen Marokko führte er seine Mannschaft als Kapitän an, kam in den Spielen gegen Spanien und Portugal dann aber nicht mehr zum Einsatz. Der Iran schied als Gruppendritter in der Gruppenphase aus.