31 sierpnia 2016 został piłkarzem Werderu Brema. 11 września 2016, w meczu z Augsburgiem (1:2), zadebiutował w Bundeslidze, natomiast w następnej kolejce, 17 września 2016, w spotkaniu z Borussią Mönchengladbach, zdobył swoją pierwszą bramkę w tej lidze. Łącznie w sezonie 2016/2017 wystąpił w 27 ligowych meczach Werderu, strzelając w nich 11 bramek i notując 2 asysty.

11 czerwca 2017 podpisał trzyletni kontrakt z Bayernem Monachium.

23 sierpnia 2020 wraz z Bayernem zdobył puchar Ligi Mistrzów UEFA, pokonując Paris Saint-Germain 1:0.

Kariera reprezentacyjna Gnabry reprezentował Niemcy na wielu młodzieżowych szczeblach, występując w zespołach do lat 16, do lat 17 oraz do lat 18. 22 marca 2013 w barwach kadry do lat 18 zdobył dwie bramki w przegranym 2:3 towarzyskim spotkaniu z Francją U-18.

W dorosłej reprezentacji zadebiutował 11 listopada 2016 w wygranym 8:0 meczu z San Marino, w którym strzelił 3 gole.