Den 29. juni 2007 ble Earnshaw solgt til Derby County for £3,5 millioner. Grunnen til at han ble solgt for den summen var at han hadde en klausul i sin kontrakt med Norwich om at han kunne gå til en klubb i Premier League dersom Norwich ikke rykket opp i hans to første sesonger i klubben. Han skrev under på en 3-årskontrakt med Derby County og salgsummen på 3,5 millioner pund er ny klubbrekord for Derby. Earnshaw debuterte for i en ligakamp mot Portsmouth den 11. august 2007.