5 lutego 2012 zadebiutował w barwach Karlsruhera w karierze klubowej, występując w wygranym 2:1 meczu 2. Bundesligi przeciwko Erzgebirge Aue[3]. W marcu 2012 podpisał z klubem kontrakt obowiązujący do 30 czerwca 2016[4].
Łącznie w sezonie 2011/2012 zanotował trzy asysty w 16 meczach, występując 14 razy w lidze, i dwukrotnie w barażach o utrzymanie w 2. Bundeslidze, które Karlsruher przegrał z Jahnem Regensburg i spadł do 3. Ligi. Po zakończeniu sezonu został zawodnikiem Hamburgera SV, który zapłacił za niego ponad 2 miliony euro, jednak trafił ponownie do Karlsruhera na zasadzie wypożyczenia[3].
Sezon 2012/2013
W pierwszym meczu nowego sezonu, rozegranym 21 lipca 2012 przeciwko Heidenheim (2:2), Çalhanoğlu zanotował oba trafienia dla swojego klubu, które były jego pierwszymi dla klubu[5]. 19 sierpnia, w meczu przeciwko klubowi z którego został wypożyczony – Hamburger SV, zanotował asystę, a jego zespół zwyciężył 4:2[3]. Zanotował również serię trzech ligowych spotkań, od 18. do 20. kolejki, w których notował dwie asysty[6].
Ogólem w sezonie 2012/2013 pomocnik wystąpił w 39 meczach, w których zdobył 17 bramek i zanotował 14 asyst. Karlsruher zakończył sezon na pierwszym miejscu w tabeli ligowej, uzyskując 79 punktów[7]. Po zakończeniu sezonu Çalhanoğlu został wybrany Najlepszym Piłkarzem Sezonu 3. Fußball-Ligi[8].
Hamburger SV
Po zakończeniu wypożyczenia, Çalhanoğlu trafił do Hamburgera SV, z którym wcześniej podpisał kontrakt do 2016[9]. W nowym klubie zadebiutował 4 sierpnia w meczu Pucharu Niemiec, w którym Hamburger pokonał 4:0 Schott Jenę[10]. W Bundeslidze zadebiutował tydzień później, występując w zremisowanym 3:3 meczu z Schalke[11]. 31 sierpnia, w wygranym 4:0 starciu przeciwko Entrachtowi Brunszwik, turecki pomocnik zanotował dwa debiutancke trafienia w barwach Hamburgera, a drugą bramkę zdobył z rzutu wolnego[12].
5 lutego 2014 przedłużył umowę z klubem o dwa lata, do czerwca 2018[13]. 15 dni później strzelił bramkę z ponad 40 metrów, skutecznie wykonując rzut wolny w wygranym 3:0 starciu z Borussią Dortmund[14]. Jego zespół, dzięki zwycięstwu, przełamał passę 5 meczów z porażką[15]. 22 marca otrzymał pierwszą czerwoną kartkę, za faul w meczu z Stuttgartem (0:1)[16].
W sezonie 2013/2014 Hamburger uplasował się na 16. miejscu w tabeli. Klub musiał więc rozegrać baraże o utrzymanie w Bundeslidze, które wywalczył remisując w dwumeczu 1:1 (0:0 w pierwszym meczu, 1:1 w drugim). Bramka strzelona w drugim spotkaniu, rozgrywanym na wyjeździe, oznaczała utrzymanie dla Hamburgera dzięki zasadzie przewagi bramek wyjazdowych[17]. Indywidualnie Çalhanoğlu rozegrał w sezonie 38 meczów, zdobywając 11 goli i notując 5 asyst. W Bundeslidze rozegrał 32 mecze, w których strzelił 11 bramek[18].
Bayer Leverkusen
Transfer
Po zakończeniu sezonu Çalhanoğlu stał się obiektem zainteresowań wielu niemieckich klubów z Bundesligi. Był na liście życzeń m.in. Bayernu Monachium[19]. Początkowo władze Hamburgera nie zezwalały na transfer pomocnika, jednakże po wykupieniu Pierra-Michela Lasoggi z Herthy Berlin za 8.5 miliona euro, włodarze zmienili zdanie. 3 lipca 2014 został zawodnikiem Bayeru Leverkusen, podpisując pięcioletni kontrakt z klubem, który zapłacił za niego 14.5 mln euro – stał się tym samym najdroższym zawodnikiem w historii Bayeru, bijąc rekord Son Heung-mina, za którego zapłacono 10 mln euro[20]. Działania tureckiego zawodnika podczas przeprowadzania trasferu wzbudziły kontrowersje, między innymi wystawienie mu czterotygodniowego zwolnienia lekarskiego przez psychiatrę, powołując się na stres spowodowany agresją ze strony kibiców drużyny[21]. Po przybyciu do Bayeru, lekarz klubowy stwierdził, że Çalhanoğlu może wrócić do treningów przed terminem upłynięcia zwolnienia. Działania zawodnika publicznie skrytykował dyrektor sportowy Hamburgera Oliver Kreuzer[22]. Ten z kolei został oskarżony przez Hakana o zdradę[21].
Sezon 2014/2015
15 sierpnia 2014 zadebiutował w Bayerze w wygranym 6:0 meczu z Waldalgesheim w ramach Pucharu Niemiec[23]. 23 sierpnia zagrał pierwszy mecz w lidze w barwach nowego klubu, występując w spotkaniu z Borussią Dortmund (2:0)[24]. Cztery dni później zdobył pierwszą bramkę dla Leverkusen, strzelając w meczu kwalifikacji do Ligi Mistrzów UEFA z Kopenhagą[25]. Pierwsze trafienie w Bundeslidze zanotował 12 września, a Bayer zremisował 3:3 starcie z Werderem Brema[26].
25 lutego 2015 zdobył gola w meczu 1/8 finału Ligi Mistrzów przeciwko Atlético Madryt (1:0)[27]. 2 maja strzelił bramkę z rzutu wolnego w wygranym 2:0 meczu z Bayernem Monachium[28].
Ogółem w sezonie 2014/2015 strzelił 13 goli i zanotował 11 asyst w 47 meczach. W Bundeslidze rozegrał 33 mecze, zdobywając w nich 8 goli i notując 7 asyst.
Sezon 2015/2016
8 sierpnia 2015, w wygranym 3:0 meczu Pucharu Niemiec, z Sportfreunde Lotte, Çalhanoğlu zdobył pierwszą bramkę w nowym sezonie[29]. 15 sierpnia rozegrał pierwszy ligowy mecz nowego sezonu, w którym Bayer pokonał 2:1 TSG Hoffenheim[30]. Tydzień później strzelił pierwszą bramkę w Bundeslidze w sezonie 2015/2016, trafiając z rzutu wolnego w wygranym 1:0 starciu z Hannoverem[31]. Strzelił dwie bramki w meczu 1. kolejki fazy grupowej Ligi Mistrzów UEFA przeciwko BATE Borysów[32].
W sezonie pomocnik zagrał w 46 meczach, w których zanotował 8 trafień i 11 asyst. Bayer Leverkusen zakończył rozgrywki ligowe na 3. miejscu[33], a w Lidze Mistrzów odpadł na etapie fazy grupowej, kończąc za Barceloną i Romą, a przed BATE Borysów[34]. Dzięki temu zespół awansował do Ligi Europy UEFA, z której odpadł w 1/8 finału, przegrywając 2:0 dwumecz z Villarrealem[35][36]. W krajowym pucharze doszedł wraz z drużyną do ćwierćfinału, w którym poległ 3:1 z Werderem Brema[37].
Sezon 2016/2017
Kolejny sezon rozpoczął 21 sierpnia 2016, od rozegrania meczu Pucharu Niemiec z Hauenstein (2:1)[38]. 14 września, w meczu Ligi Mistrzów z CSKA Moskwą strzelił swoją 50. bramkę w karierze seniorskiej[39].
2 lutego 2017 został zawieszony przez FIFA na cztery miesiące z powodu zerwania umowy z Trabzonsporem, co miało miejsce w 2011. Çalhanoğlu nie dotrzymał warunków i przedłużył kontrakt z Karlsruherem. Sportowy Sąd Arbitrażowy w Lozannie podtrzymał tę decyzję, a pomocnik został zobowiązany do zapłacenia odszkodowania tureckiemu klubowi w wysokości 100 tys. euro[40][41]. 7 lutego 2017 zapowiedził, że nie będzie pobierał wynagrodzenia do końca trwania zawieszenia tj. do końca sezonu 2016/2017[42].
Łącznie w sezonie wystąpił w 22 meczach, w których siedmiokrotnie trafiał i asystował. Przez trzy sezony spędzone w Bayerze zagrał w 115 spotkaniach, w których zdobył 28 goli i zanotował 29 asyst.
Milan
Sezon 2017/2018
3 lipca 2017 poinformowano, że został zawodnikiem Milanu, z którym związał się umową do 31 czerwca 2021. Według mediów miał zarabiać 3.5 mln euro za sezon. Jego poprzedni klub – Bayer Leverkusen – zainkasował 20 milionów euro razem z bonusami wartymi cztery mln euro[43]. Został zaprezentowany z numerem 10 na koszulce meczowej[44].
We włoskim klubie zadebiutował 3 sierpnia 2017 w wygranym 2:0 meczu kwalifikacji do Ligi Europy UEFA przeciwko Universitatea Craiova[45]. 20 sierpnia wystąpił po raz pierwszy w Serie A w spotkaniu z Crotone (3:0)[46]. 14 września strzelił pierwszą bramkę dla Milanu, trafiając w wygranym 5:1 starciu przeciwko Austrii Wiedeń[47]. 25 października, w meczu z Chievo Veroną, Çalhanoğlu strzelił swoją pierwszą we włoskiej lidze[48].
Ogólem w sezonie 2017/2018 turecki pomocnik wystąpił w 45 meczach, zdobywając w nich 8 goli i notując 14 asyst. Jego zespół uplasował się na 6. pozycji[49], premiowanej awansem do fazy grupowej Ligi Europy UEFA; indywidualnie Çalhanoğlu rozegrał 31 meczów, strzelając w nich 6 goli i zaliczając 9 asyst.
Sezon 2018/2019
Nowy sezon rozpoczął 31 sierpnia 2018 od wygrania 2:1 z Romą w Serie A[50]. Pierwszą bramkę strzelił 29 listopada w wygranym 5:1 starciu z F91 Dudelange, w którym zanotował także trzy asysty[51]. 16 stycznia 2019 wystąpił w przegranym 1:0 meczu o Superpuchar Włoch z Juventusem[52]. Pierwsze ligowe trafienie zanotował 16 lutego w meczu przeciwko Atalancie[53].
Łącznie w sezonie 2018/2019 strzelił 4 gole i zanotował 13 asyst w 46 spotkaniach. Milan zajął 5. pozycję w tabeli w Serie A, ale został pozbawiony możliwości gry w Lidze Europy UEFA, z powodu złamania Finasowego Fair Play UEFA[54].
Sezon 2019/2020
25 sierpnia 2019 rozegrał pierwszy mecz nowego seoznu, w którym Milan przegrał 1:0 z Udinese[55]. W kolejnym meczu, przeciwko Brescii (1:0), strzelił jedyną bramkę spotkania[56]. 27 października rozegrał 100. mecz w barwach Milanu, występując w starciu z Romą[57]. 28 stycznia 2020, w wygranym 4:2 meczu ćwierćfinałowym Pucharu Włoch z Torino, Çalhanoğlu zdobył dwa gole[58].
W sezonie 2019/2020 zagrał w 38 meczach, w których strzelił 11 bramek i zanotował 9 asyst. W Serie A zdobył 9 goli i 9 asyst w rozegranych 35 meczach. Milan uplasował się na 6. miejscu, dzięki czemu zakwalifkował się do drugiej rundy Ligi Europy UEFA[59].
Ogólem zagrał w 43 meczach, strzelając 9 goli i kompletując 12 asyst. W lidze Milan zajął 2. miejsce, a w Lidze Europy odpadł na etapie 1/8 finałów, przegrywając z Manchesterem United[65]. Łącznie w barwach Milanu Çalhanoğlu rozegrał 172 meczów, w których zdobył 32 gole i zanotował 48 asyst.
Inter Mediolan
Sezon 2021/2022
22 czerwca 2021 Çalhanoğlu został zawodnikiem Interu Mediolan, do którego przeszedł na zasadzie wolnego transferu. Związał się klubem umową do 30 czerwca 2024[66]. Jeszcze dzień przed oficjalnym potwierdzeniem przejścia, Turek w wywiadzie przekazał, że następnego dnia podpisze kontrakt z Interem[67].
We włoskim klubie zadebiutował 21 sierpnia w wygranym 4:0 meczu z Genoą, w którym strzelił gola i zanotował asystę przy trafieniu Milana Škriniara[68]. 7 listopada strzelił gola przeciwko byłemu klubowi – Milanowi, z którym Inter zremisował 1:1[69]. 4 marca 2022, skutecznie wykorzystując rzut karny, zdobył jedyną bramkę spotkania z Juventusem[70].
Sezon 2022/2023 rozpoczął 13 sierpnia 2022 od wygrania 2:1 z Lecce[72]. W kolejnym meczu, rozegranym sześć dni później przeciwko Spezii, Çalhanoğlu zdobył pierwszą bramkę w nowej edycji rozgrywek[73]. 4 października zdobył pierwszą bramkę dla Interu Mediolan w Lidze Mistrzów UEFA, trafiając w wygranym 1:0 meczu z FC Barceloną[74]. 10 czerwca 2023 wystąpił w przegranym 1:0 meczu finału Ligi Mistrzów UEFA przeciwko Manchesterowi City[75].
W sezonie zdobył 4 bramki i 8 asyst w 49 meczach. Wraz z Interem został zdobywcą Pucharu Włoch, Superpucharu Włoch, w lidze zajął 3. miejsce, a także został finalistą Ligi Mistrzów.
Sezon 2023/2024
Sezon 2023/2024 rozpoczął od starcia z Monzą, z którą Inter wygrał 2:0[76]. Pierwszą bramkę zdobył 3 września w wygranym 4:0 meczu z Fiorentiną[77]. 24 września zanotował setny występ w barwach Inter Mediolan, grając w meczu z Empoli[78]. 13 stycznia 2024 zdobył dwa gole w meczu z Monzą (5:1)[79].
↑ abcPerform Media DeutschlandP.M.D.GmbHPerform Media DeutschlandP.M.D., Arbeitstier und Zaubermaus [online], www.spox.com, 17 grudnia 2012 [dostęp 2024-01-24](niem.).