I Michael Johnsons 7. sesong i Birmingham var han med på å rykke opp til Premier League. I ligasammenheng spilte han 32 ligakamper og laget 2 mål og han fikk også med seg play-off finalen mot Norwich City den 12. mai 2002. Kampen ble spilt på Millenium Stadium, og Birmingham ble til slutt kvalifisert for Premier League etter å ha slått Norwich 4-2 på straffer. Den 26. desember 2002 debuterte han i Premier League da Birmingham spilte 1-1 mot Everton, og totalt fikk han med seg 6 ligakamper i hans siste sesong som Birminghamspiller. Etter åtte sesonger i Birmingham kom han gratis til Derby County 14. august 2003, og to dager senere debuterte han for Derby i en ligakamp mot Gillingham. Hans første mål for klubben fra Derbyshire kom den 31. januar 2004 i en kamp mot Reading. Totalt spilte han 39 ligakamper i 2003/04-sesongen, mens han i 2004/05-sesongen fikk bokført 36 ligakamper. I denne sesongen spilte han også den første av de to play-off kampene mot Preston North End. I hans tredje sesong for Derby County stoppet han på 31 ligakamper for , mens han i 2006/07-sesongen spilte 29 ligakamper og scoret 1 ligamål. I den sesongen spilte han også 4 cupkamper og scoret 1 cupmål. Johnson fikk ikke noen obligatoriske kamper for Derby i starten på 2007/08-sesongen og han valgte derfor å signere på et låneopphold i Sheffield Wednesday 20. september 2007. Han spilte sin første kamp for den 22. september 2007 da de slo Hull City 1-0 i en ligakamp, og totalt fikk han med seg 13 ligakamper for Sheffield Wednesday før han ble tilbakekalt av Derby den 24. desember 2007.