Przed sezonem 2001-02 przeniósł się do innego zespołu NBA Atlanta Hawks. W swoim debiutanckim roku w ekipie Hawks rozegrał 77 meczów rzucając średnio 21,2 punktu na mecz. W sezonie 2002–2003 rozegrał w barwach Atlanty 81 meczów rzucając 19,9 punktu na mecz. Przed sezonem 2003–2004 przeniósł się do Portland Trail Blazers. Jednak nie wiodło mu się tam najlepiej. W pierwszych 32 meczach sezonu rzucał średnio zaledwie 10 punktów na mecz. To spowodowało, że wrócił do końca sezonu do Atlanty gdzie odbudował formę, w kolejnych 53 meczach w tym sezonie zdobywał 20,1 punktu na mecz. Przed sezonem 2004–2005 powrócił do Portland. W 54 meczach tego zespołu rzucał 16,8 punktu na mecz. Po tym sezonie Shareef znowu zmienił barwy klubowe. Tym razem przeniósł się do Sacramento Kings. W tej drużynie rozegrał sezon 2005–2006. W 72 meczach w barwach Kings zdobywał średnio 12,3 punktu w ciągu jednego spotkania.