Szalai begann mit dem Fußballspielen 1994 bei Honvéd Budapest und wechselte 2000 zu Újpest Budapest.[1] 2004 wechselte er im Alter von 16 Jahren in die Jugendabteilung des VfB Stuttgart. Mit dem VfB wurde er in der Spielzeit 2004/05deutscher Junioren-Meister und erzielte dabei auch den Siegtreffer zum 1:0 im Finale gegen den VfL Bochum. Die Saison 2006/07 bestritt er in der zweiten Mannschaft des VfB und wurde mit ihr in der Regionalliga Süd Tabellendritter.
Im August 2007 wechselte Szalai in die zweite Mannschaft des spanischen Rekordmeisters Real Madrid. Nachdem er sich in seiner ersten Saison gegen seinen Klubkollegen José Callejón nicht hatte durchsetzen können und nur selten zum Einsatz gekommen war, wurde er 2008/09 an der Seite von Alberto Bueno zum Stammspieler. Seine Leistungen führten dazu, dass Real Madrid ihn im Januar in den Spielerkader für die Champions League aufnahm, um den dort nicht spielberechtigten Klaas-Jan Huntelaar zu ersetzen.[2]
Am 9. Januar 2010 wurde Szalai bis zum Saisonende 2009/10 an den 1. FSV Mainz 05 verliehen.[3] Am 10. April 2010 erzielte der Angreifer in der Partie gegen Borussia Dortmund sein erstes Bundesliga-Tor, als er in der 30. Minute zum 1:0-Endstand traf.[4] Im Juli 2010 wurde er fest verpflichtet.[5] Am 29. Januar 2011 verletzte er sich schwer (Außenbandriss und Kreuzbandriss) und fiel damit den Rest der Saison aus.[6] Sein Comeback in der Bundesliga gab er nach fast einem Jahr am 22. Januar 2012 bei der Mainzer 2:3-Niederlage gegen Bayer 04 Leverkusen. Er erzielte am 30. März 2013 im Spiel gegen Werder Bremen nach zwölf Sekunden das bis dahin schnellste Tor in der Bundesliga für eine Mannschaft, die nicht den Anstoß ausgeführt hatte.[7] Sein Vertrag lief bis 30. Juni 2015.[8]
Szalai wechselte zur Saison 2013/14 zum FC Schalke 04, bei dem er einen Vierjahresvertrag unterschrieb.[9] Er wurde als Alternative im Sturm für Klaas-Jan Huntelaar verpflichtet. Huntelaar verletzte sich am zweiten Spieltag, sodass er für den Rest der Hinrunde ausfiel. Da mit Szalai und Chinedu Obasi nur noch zwei weitere Stürmer im Kader standen, war Szalai im Schalker Sturm gesetzt. Nach vier Toren in den ersten acht Bundesligaspielen und zwei Treffern beim 3:2-Sieg in der Champions-League-Qualifikation gegen PAOK Saloniki blieb er in 14 aufeinander folgenden Spielen ohne Tor und verlor nach Huntelaars Genesung seinen Stammplatz.
Zur Saison 2014/15 wechselte Szalai an die TSG 1899 Hoffenheim.[10] In der Winterpause 2015/16 wurde er bis Saisonende an den Ligakonkurrenten Hannover 96 verliehen. Die Niedersachsen besaßen eine anschließende Kaufoption.[11] Nach dem Abstieg mit Hannover 96 kehrte Szalai zur Saison 2016/17 zur TSG 1899 Hoffenheim zurück. Für die Kraichgauer absolvierte der Ungar 100 Ligaspiele und wurde mit der Mannschaft in der Saison 2017/18 am Ende Dritter.
Nach dem 2. Spieltag der Saison 2019/20 kehrte Szalai zu Mainz 05 zurück und erhielt einen bis 2021 laufenden Vertrag.[12] Vor dem 2. Spieltag der Saison 2020/21 strich die sportliche Leitung Szalai aus dem Profikader. Die Mannschaft verweigerte daraufhin eine Trainingseinheit.[13][14] Nach der folgenden 1:4-Heimniederlage gegen den VfB Stuttgart wurde Achim Beierlorzer von seinen Aufgaben als Cheftrainer entbunden.[15] Szalai wurde wieder in den Profikader aufgenommen[16] und kam unter Interimstrainer Jan Siewert und dem neuen Cheftrainer Bo Svensson in 18 der verbliebenen 20 Saisonspiele zum Einsatz. Er erzielte am 30. Spieltag beim für den späteren Klassenerhalt wichtigen 1:0 im Auswärtsspiel beim Konkurrenten im Abstiegskampf Werder Bremen das Tor der Mainzer. Szalai wird als Führungsspieler[17] und „Integrationsfigur“ für die jüngeren Spieler ein erheblicher Anteil am Klassenerhalt der Mainzer zugesprochen. In der Bundesliga-Sommerpause wurde seine Vertragslaufzeit bis 2022 verlängert.[18] Im Februar 2022 wurde der Vertrag vorzeitig aufgelöst.
Szalai wurde anschließend bis 2023 vom FC Basel verpflichtet.[19][20] Er erzielte bei seinem ersten Einsatz nach seiner Einwechslung im Ligaspiel gegen Lausanne-Sport am 19. Februar 2022 (3:0) einen Treffer.[21] Am 29. Januar 2023 wurde die Auflösung des Vertrages zwischen dem FC Basel und Szalai bekanntgegeben.[22]
Im Sommer 2023 beendete Szalai seine Karriere als Fußballspieler.[23]
Für ein Länderspiel gegen Nordirland am 19. November 2008 wurde Szalai erstmals in den Kader der A-Nationalmannschaft berufen, kam jedoch nicht zum Einsatz. Sein Debüt im Nationaltrikot gab er am 11. Februar 2009 in Tel Aviv bei der 0:1-Niederlage in einem Testländerspiel gegen die Auswahl Israels.
Nationaltrainer Bernd Storck berief ihn in das ungarische Aufgebot zur Europameisterschaft 2016 in Frankreich. Im Eröffnungsspiel gegen Österreich leitete er den ungarischen 2:0-Sieg mit dem ersten Tor ein. Trotzdem stand er danach gegen Island nicht in der ersten Elf und kam erst in der Schlussphase ins Spiel. Die letzten beiden Partien inklusive des verlorenen Achtelfinales bestritt er wieder von der Startaufstellung aus. Szalai nahm als Mannschaftskapitän[18] des ungarischen Kaders an der Europameisterschaft 2021 teil, kam aber mit diesem nicht über die Gruppenphase hinaus.
Nach der aktiven Karriere
Co-Trainer der ungarischen Nationalmannschaft
Im Oktober 2024 wurde er unter Marco Rossi Teil des Trainerteams der ungarischen Nationalmannschaft.[24]