Mellberg je započeo juniorsku karijeru u lokalnom klubu Gullspångs. Profesionalnu karijeru započeo je 1996. godine u Degerforsu, gdje je igrao jednu godina. Jednu godinu igrao je i u AIK-u, da bi prešao u španjolski Racing Santander 1998. godine gdje je u tri godine odigrao 98 utakmica. Godine 2001. prelazi u englesku Aston Villu. U sedam godina u Aston Villi odigrao je 232 utakmice i postigao osam pogodaka. Od 2008. do 2009. igra za Juventus, a od 2009. do 2012. za grčki Olympiacos. Nakon tri godine u Grčkoj prelazi u Villarreal[1] gdje se zadržo tek jednu sezonu da bi karijeru nastavio u F.C. Københavnu.
Mellberg je za Švedsku debitirao 2000. godine. Odigrao je 117 utakmica i postigao osam pogodaka. S reprezentacijom je sudjelovao na tri Europska prvenstva 2004., 2008., i 2012. godine, također je sudjelovao na jednom Svjetskom prvenstvu u Japanu i Južnoj Koreji 2006. godine. Nakon Europskog prvenstva 2012. Mellberg je objavio da više neće nastupati za reprezentaciju.