Начинал заниматься футболом в ДЮСШ «Пахтакор» (Ташкент). В начале карьеры играл в российских клубах низших лиг.
В 1999 году перешёл в киевское «Динамо», возглавляемое тогда Лобановским, где провёл последующие десять лет. Дважды становился лучшим бомбардиром украинского чемпионата: в сезоне 1999/00 с 20 голами и в сезоне 2002/03 с 22 голами (тем самым повторив рекорд Сергея Реброва, который забил 22 гола в сезоне 1997/98 также в составе ФК «Динамо» Киев).
В составе ФК «Динамо» Киев в высшей лиге чемпионата Украины провел 215 матчей, забил 97 мячей. По окончанию контракта с «Динамо» перешёл в киевский «Арсенал».
В Кубке Украины провел 36 матчей, забил 22 мяча. В еврокубках сыграл 73 матча, забил 23 мяча. В составе ФК «Арсенал» Киев в премьер-лиге чемпионата Украины провёл 55 матчей, забил 14 мяча. 4 апреля 2010 года в матче «Арсенал» Киев — «Металлург» Запорожье (2:0) забил свой 100-й гол в высшей/премьер лиге чемпионата Украины в 222 матчах.
15 августа 2010 года в матче «Арсенал» Киев — «Волынь» Луцк (1:1), забив на 71-й минуте гол в ворота «Волыни», установил рекорд чемпионатов Украины — первым забил 100 мячей с игры.
В Симферополе, 11 сентября 2010 года (Таврия — Арсенал, 0:1), Максим Шацких провёл 500-й официальный матч в своей профессиональной карьере (матчи за клубы в чемпионатах, кубках, еврокубках и за сборную Узбекистана), забив при этом 217 мячей.
Матч «Арсенал» — «Ильичёвец» (3:1), состоявшийся 20 марта 2011 года, стал для Максима Шацких юбилейным 250-м матчем, сыгранным в высшей премьер-лиге чемпионатов Украины. В этой игре на 43 минуте Шацких отметился голом в ворота соперника, который стал 109-м голом Максима в чемпионатах Украины.
Был признан вторым среди трёх лучших азиатских игроков в 2005 году.
Считается одним из лучших футболистов Узбекистана.
Забил свой 29-й гол за сборную в победном матче отборочного турнира чемпионата мира 2010 против Сингапура, сравнявшись с Мирджалолом Касымовым в списке лучших бомбардиров в истории сборной Узбекистана.
15 октября 2008 года забил свой 30-й гол за сборную в матче отборочного турнира чемпионата мира 2010 против сборной Японии, обойдя Мирджалола Касымова (29 голов) в списке лучших бомбардиров в истории сборной Узбекистана. Всего за сборную Узбекистана провёл 61 матч, забив 34 мяча.
Полуфиналист Кубка Азии 2011 в составе сборной Узбекистана.
В апреле 2012 года Максим Шацких включён в состав членов символического Клуба украинских бомбардиров имени Олега Блохина, как футболист, забивший в составе украинских команд 100 и более мячей. На момент вступления в Клуб на счету Шацких 157 мячей, забитых в составе украинских команд, из них - 142 в составе "Динамо" Киев (97 - в чемпионате Украины, 22 - в Кубке Украины, 23 - в еврокубках) и 15 в составе "Арсенал" Киев (14 - в чемпионате Украины, 1 - в Кубке Украины).
Следует отметить, что в обход положений Регламента символического Клуба украинских бомбардиров имени Олега Блохина (п. 2.5.) в зачёт Максиму Шацких не включены 9 мячей, забитых им в составе клуба "Локомотив" Астана (Казахстан), из них 8 - в чемпионате Казахстана и 1 - в Кубке Казахстана (оба эти турнира проходят под эгидой УЕФА).
Данные на 12 апреля 2012 года