Andre Ayew fired wide from six yards before Asamoah Gyan headed in the opener as Ghana started well.
Mali's Moussa Marega missed two good chances with a header and a shot, and Razak Brimah superbly saved Kalifa Coulibaly's volley late on.
The win puts Ghana into the last-eight with a game to spare, while Mali must beat Uganda to keep their hopes alive.
Egypt need a point against Ghana in the last round of Group D games to join them in the quarter-finals, after the Pharaohs knocked out Uganda.
It could have been very different for Mali had they taken some of the chances they created in the second half.
As well as those misses from Marega and Coulibaly, Mali threatened with efforts from Salif Coulibaly, who drove just wide, and Hamari Traore, whose 20-yard volley was not far away from the top corner.
They also had a last-gasp appeal for a penalty turned down.
Ghana, who were in total control in the first half, were run ragged after the interval - and their split-personality performance will be a major concern for coach Avram Grant.
Mali must find a way to finish off their opportunities - they have yet to score at the tournament - if they are to have any chance of avoiding a group-stage exit.
The Ghana skipper became his country's all-time top scorer in the competition with eight goals, overtaking Osei Kofi. He is also the first player to score at six consecutive Nations Cup finals.
Gyan and his team-mates celebrated his goal with a choreographed dance routine and the striker then held up a t-shirt which carried on it a get well message for Baba Rahman, who is out of the tournament because of injury.