Youssef En-Nesyri scored the game’s only goal in the first half after a clever pass from Nordin Amrabat.
Ivory Coast had gone close with just 38 seconds gone when Wolves’ Romain Saiss cleared a header from Aston Villa’s Jonathan Kodjia off the line.
Morocco end their group campaign against South Africa on Monday (17:00 BST), while Ivory Coast play Namibia.
Morocco could still be caught by both Ivory Coast and South Africa, but they are already assured of at least being one of the four best third-placed teams.
As well as scoring, En-Nesyri swept a shot into the side-netting and forced Sylvain Gbohouo into a terrific save down to his left after Amrabat dummied Hakim Ziyech’s low cross.
Ivory Coast, who left Crystal Palace talisman Wilfried Zaha on the bench, could have pulled level when Max Gradel was played through on goal, but Morocco goalkeeper Yassine Bounou was quickly off his line to smother the danger, before Pepe fired the loose ball into the side-netting.