Mustapha Hadji nasceu a 16 de Novembro de 1971 em Ifrene – Meknès-Tafilalet – Marrocos. Emigrou ainda muito jovem para França e lá começou a jogar futebol no Nancy. O seu talento não passou despercebido a ninguém, e apesar de convidado para alinhar pelas seleções mais jovens gaulesas, optou pelo país de onde é natural, e ao serviço de Marrocos começou a ser frequentemente internacional.
Esteve presente no Mundial de 1994 e 2 anos depois foi contratado pelo Sporting por indicação do novo técnico, o belga Robert Waseige. Estreou-se oficialmente a 23 de Agosto de 1996 na 1ª jornada do Campeonato Nacional (triunfo na Maia frente ao Sporting Espinho por 3-1) e na ocasião marcou também pela 1ª vez. Nessa 1ª temporada jogou com grande regularidade (36 presenças), normalmente na esquerda do meio campo.
No ano seguinte baixou de rendimento, sobretudo após a saída do treinador Octávio Machado. Acabou por alinhar pela última vez a 1 de Dezembro de 1997 numa derrota frente ao Leça por 1-0, rescindindo logo a seguir (de forma litigiosa) alegando razões psicológicas.
Assim, acabou por totalizar apenas duas épocas no Sporting, tendo realizado 52 jogos oficiais e marcado 8 golos, o último dos quais numa derrota em Leverkusen por 4-1 para a Liga dos Campeões (5 de Novembro de 1997). Deixou a imagem dum futebolista com classe, boa técnica e capacidade para fazer assistências, mas algo frágil a nível mental.
De Alvalade rumou à Corunha (o Deportivo viria depois a ser obrigado a indemnizar o Sporting em cerca de 1 milhão de contos) onde voltou a demonstrar o seu valor (em 1998 voltou a estar no Mundial e foi considerado o jogador africano do ano). Mais tarde jogou ainda (e mais uma vez com sucesso) no Coventry e Aston Villa. Em 2003 regressou a Espanha, para o Espanhol de Barcelona, alinhando mais tarde no Al Ain (EAU), Saarbrücken (Alemanha) e Fola Esch (Luxemburgo), onde terminou a carreira em 2010.
Foi 54 vezes internacional pela seleção principal marroquina.