Can rozpoczął swoją karierę w klubie SV Blau-Gelb Frankfurt, skąd latem 2006 roku przeniósł się do Eintrachtu Frankfurt[1]. Trzy lata później został zawodnikiem Bayernu Monachium, gdzie początkowo występował tylko w zespołach młodzieżowych. Przed 2011/12 został przesunięty do drużyny rezerw, w której zadebiutował 27 sierpnia 2011 roku, wychodząc w podstawowym składzie na wygrane 2:1 ligowe spotkanie z SV Waldhof Mannheim[2]. 4 maja 2012 roku podczas zremisowanego 1:1 meczu z SC Pfullendorf zdobył swoją pierwszą bramkę w barwach drugiej drużyny. W sumie sezon zakończył z dorobkiem 17 spotkań i 1 bramki, zaś w kolejnych rozgrywkach wystąpił 14 razy, zdobywając przy tym 2 gole[3].
26 lutego 2012 roku po raz pierwszy usiadł na ławce rezerwowych podczas spotkania pierwszego zespołu, który wygrał wówczas 2:0 z FC Schalke 04[4]. Na debiut czekał do 12 sierpnia 2012 roku, gdy wyszedł w podstawowym składzie na wygrane 2:1 spotkanie Superpucharu Niemiec z Borussią Dortmund[5]. 13 kwietnia 2013 roku zadebiutował w rozgrywkach Bundesligi, wychodząc w podstawowym składzie na wygrany 4:0 mecz z 1. FC Nürnberg[6]. Dwa tygodnie później podczas wygranego 1:0 spotkania z SC Freiburg zdobył swoją premierową bramkę dla pierwszej drużyny, pokonując w 35. minucie Olivera Baumanna[7]. Ostatecznie Bayern zakończył rozgrywki ligowe na pierwszym miejscu, zdobywając przy okazji puchar i superpuchar kraju oraz zwyciężając w rozgrywkach Ligi Mistrzów. Sam Can wystąpił ogólnie w 17 meczach, w których zdobył 1 gola.
Bayer Leverkusen
Latem 2013 roku Can trafił do Bayeru 04 Leverkusen, z którym podpisał czteroletni kontrakt[8]. W nowych barwach zadebiutował 31 sierpnia 2013 roku podczas przegranego 0:2 meczu z Schalke 04, zmieniając w 80. minucie Stefana Reinartza[9]. 17 września rozegrał swoje pierwsze spotkanie w Lidze Mistrzów, wychodząc w podstawowym składzie na przegrane 2:4 spotkanie fazy grupowej z angielskim Manchesterem United[10]. 26 października zdobył swoją pierwszą bramkę dla Bayeru w 83. minucie wygranego 2:1 meczu z Augsburgiem[11]. Później strzelał gole także w wygranym 3:1 drugim spotkaniu z Augsburgiem[12] i wygranym 2:0 meczu z Eintrachtem Frankfurt[13], a także w wygranym 2:1 spotkaniu ćwierćfinałowym Pucharu Niemiec z Freiburgiem[14]. 12 marca 2014 roku podczas rewanżowego meczu ćwierćfinałowego Ligi Mistrzów z francuskim Paris Saint-Germain został wyrzucony z boiska z powodu dwóch żółtych kartek, zaś Bayer przegrał 1:2[15]. Klub zakończył rozgrywki Bundesligi na 4. miejscu, a Can w przekroju całego sezonu rozegrał 39 spotkań i zdobył 4 bramki.
Liverpool
Na początku czerwca 2014 roku oficjalnie poinformowano, że angielski Liverpool aktywował zawartą w kontrakcie Cana klauzulę wykupu i osiągnął porozumienie z Bayerem w kwestii transferu[16][17].
Juventus
21 czerwca 2018 roku, Can trafił do włoskiego Juventusu na zasadzie wolnego transferu[18].
Borussia Dortmund
31 stycznia 2020 roku, przeszedł do niemieckiego klubu Borussia Dortmund na zasadzie wypożyczenia[19]. 1 lipca 2020 roku po dobrych występach oficjalnie dołączył do klubu[20].
8 lutego zadebiutował w barwach Dortmundu, zdobywając także gola w przegranym 4–3 wyjazdowym meczu ze swoim starym klubem Bayerem Leverkusen[21]. Tego samego dnia umowa została przedłużona na stałe na czteroletni kontrakt wart 25 milionów euro, przy zachowaniu wygaśnięcia wypożyczenia na koniec sezonu 2019–2020[22].
Podczas ćwierćfinałów Ligi Mistrzów w sezonie 2020–2021 przeciwko Manchesterowi City, jego podanie zostało przechwycone w środku boiska, co doprowadziło do pierwszej bramki. Spotkanie końcowo zakończyło się porażką Dortmundu 2:1[23]. W drugim meczu został ukarany za zagranie piłką ręką, mecz ponownie zakończył się porażką 1-2, a Borussia odpadła z rozgrywek