I hans fjerde sesong som Cardiff-spiller greide Earnshaw å etablere seg i startoppstillingen, og da denne sesongen var over hadde scoret 19 ligamål på 36 kamper. Deretter ble det 11 mål på 30 ligakamper i 2001/02-sesongen, 31 mål på 46 ligakamper i 2002/03-sesongen og 21 mål på 46 ligakamper i 2003/04-sesongen. I starten på 2004/05-sesongen spilte han 4 ligakamper og laget 1 mål før han ble solgt til West Bromwich Albion for £3 millioner den 30. august 2004. Totalt scoret Earnshaw 115 mål på 205 obligatoriske kamper for Cardiff.