Miami Heat (2014-2019)Rediger
Efter at være blevet undraftet i NBA-draften i 2014 sluttede Johnson sig til Miami Heat i NBA Summer League i 2014. Den 7. august 2014 skrev han under med Heat, men blev senere waived af holdet den 25. oktober. Den 3. november blev han erhvervet af Sioux Falls Skyforce fra NBA Development League som en affilieret spiller til Heat.
Den 12. januar 2015 underskrev Johnson en 10-dages kontrakt med Heat. Tre dage senere fik han sin NBA-debut mod Golden State Warriors, hvor han optrådte i 1:44 minutter og scorede to point på et par frikast. Den 22. januar besluttede Heat ikke at beholde Johnson, efter at hans kontrakt udløb, og to dage senere vendte han tilbage til Skyforce. Han sluttede sig senere igen til Heat den 29. januar, da han underskrev endnu en 10-dages kontrakt med holdet. Den 8. februar underskrev han en toårig aftale med Heat. Den 2. marts havde han en sæsonbedste kamp med 26 point og 4 steals i en 115-98 sejr over Phoenix Suns. Fem dage senere scorede han 24 point og spillede i karrierens højeste 44 minutter fra bænken, da han var med til at hjælpe Heat med at besejre Sacramento Kings med 114-109. Han overgik dette minutmærke ved at spille alle 48 minutter i Heat’s sæsonfinale-sejr over Philadelphia 76ers.
Den 9. juli 2015 blev Johnson sat ud af spillet i seks uger med en brækket kæbe, som han pådrog sig, da han spillede for Heat i NBA Summer League 2015. Den 9. december 2015 scorede han sæsonhøjde 20 point i et nederlag til Charlotte Hornets. Han missede senere otte kampe i løbet af december med en skulderskade. Johnson kæmpede sig igennem sine smerter i venstre skulder i løbet af januar, inden han missede holdets to sidste kampe i måneden efter at være bukket under for smerterne. Efter i første omgang at have forsøgt at undgå en operation, gav Johnson i sidste ende efter for tanken den 1. februar 2016, en procedure, der udelukkede ham i tre måneder. Han vendte tilbage til kamp den 1. maj, hvor han kom fra bænken i de sidste seks minutter af Heat’s Game 7-sejr over Charlotte Hornets i første runde af slutspillet.
Efter 2015-16-sæsonen blev Johnson restricted free agent. Den 6. juli 2016 modtog han et fireårigt tilbudsseddel på 50 millioner dollars fra Brooklyn Nets. Fire dage senere matchede Heat Nets’ kontrakttilbud og genanslog Johnson. Den 7. december 2016 scorede han karrierens højeste score på 27 point i et 103-95-nederlag til Atlanta Hawks. Han overgik dette mål den 20. december, hvor han scorede 32 point – det er det højeste antal point, som en Heat-reserve nogensinde har scoret i en kamp – i et 136-130 tab i dobbelt overtid mod Orlando Magic. Den tidligere Heat-scorerekord for en reserve var 29 point af Voshon Lenard i 1999.
Den 30. december 2017 scorede Johnson 22 af sine sæsonhøjeste 31 point i tredje quarter i Heat’s 117-111 sejr over Magic.
Den 23. december 2018 scorede Johnson 20 af sine 25 point i tredje quarter i Heat’s 115-91 sejr over Magic.
Phoenix Suns (2019-2020)Rediger
Den 6. februar 2019 blev Johnson handlet, sammen med Wayne Ellington, til Phoenix Suns i bytte for Ryan Anderson. Den 23. februar scorede han sæsonhøjde 29 point i et 120-112-nederlag til Atlanta Hawks. To dage senere scorede han 18 point mod sit tidligere hold, Miami Heat, for at hjælpe Suns med at bryde en franchise-rekord på 17 tabte kampe og vinde 124-121. Den 4. april 2019 blev Johnson udelukket for resten af sæsonen efter at have misset 10 kampe med ømhed i højre knæ og efter at have gennemgået en artroskopisk operation. Den 9. februar 2020 blev Johnson waived af Phoenix Suns.
Brooklyn Nets (2020-nutid)Rediger
Den 24. juni 2020 underskrev Johnson med Brooklyn Nets. Den 27. november underskrev han igen med Nets.