Han blev erstattet hos Ferrari af den østrigske Gerhard Berger, og han flyttede til McLaren som nummer to, bag dobbelt- og regerende verdensmester Alain Prost. McLaren var ikke så konkurrencedygtige i 1987 som de havde været i 1984-1986, hvor Prost kun tilføjede tre sejre til hans tally (og slog rekorden på 27 Grand Prix sejre holdt af Jackie Stewart med sin 28. sejr i Portugal) og undlod at forsvare sit kørere mesterskab. Yderligere podiumfinaler fulgte for svensken, og Johansson blev sjette i kørernes mesterskab. Stefan Johanssons stilling hos McLaren blev af mange betragtet som blot en stopgap-signering af teamchef Ron Dennis, der ikke havde lykkedes at lokke Ayrton Senna fra Lotus på grund af, at han var under kontrakt indtil slutningen af 1987 og altid havde til hensigt at underskrive brasilianeren for. Johansson sluttede den berømte tyske Grand Prix i 1987 på tre hjul efter at have haft et punktering på sidste omgang. Han sluttede også anden bag Prost i Belgien og tilføjede yderligere podiumfinishes i Brasilien
, Spanien og Japan. På trods af 11 podier i tre sæsoner var Johansson stadig sejrløs og var ikke ønsket af et tophold (han havde håbet at slutte sig til Williams i 1988 som en erstatning for den afgående 1987 verdensmester Nelson Piquet, men Williams underskrev Riccardo Patrese i stedet). Han vendte tilbage til McLaren som testkører i 1991, hvor han testede Honda V12-motoren i Suzuka i Japan.