E' stato sostituito alla Ferrari dall'austriaco Gerhard Berger e si e' trasferito alla McLaren come pilota numero due dietro il doppio campione del mondo Alain Prost. La McLaren non era competitiva nel 1987 come lo era stata nel 1984-1986, con Prost che aggiunse solo tre vittorie al suo bilancio (e battendo il record di 27 vittorie in Gran Premio detenuto da Jackie Stewart con la sua 28a vittoria in Portogallo) e non riuscendo a difendere con successo il suo Campionato Piloti. Ulteriori podi seguirono per lo svedese e Johansson terminò sesto nel Campionato Piloti. La posizione di Stefan Johansson alla McLaren è stata considerata da molti come solo una firma di stop gap da parte del capo squadra Ron Dennis che non era riuscito ad attirare Ayrton Senna dalla Lotus a causa del fatto che era sotto contratto fino alla fine del 1987 e aveva sempre intenzione di firmare il brasiliano. Johansson terminò il Gran Premio di Germania del 1987 su tre ruote dopo aver avuto una foratura nell'ultimo giro. Ha anche finito secondo dietro Prost in Belgio e ha aggiunto ulteriori podi in Brasile
, Spagna e Giappone. Nonostante 11 podi in tre stagioni, Johansson era ancora senza vittoria e non era desiderato da una squadra di alto livello (aveva sperato di unirsi a Williams nel 1988 come sostituto del campione del mondo 1987 Nelson Piquet, ma Williams ha firmato Riccardo Patrese invece). Tornò alla McLaren come pilota collaudatore nel 1991, testando il motore Honda V12 a Suzuka in Giappone.