Hadji Drame (15th minute) and Djemoussa Traore (61st) scored for Mali, while Kudus Mohammed (70th) reduced the margin for Ghana at the Indira Gandhi Athletic Stadium.
Last edition's runners-up Mali started on an attacking note with Lassana N'diaye finding the ball at his feet in a dangerous position on two different occasions, but Ghana's defence was equal to the task.
On the lookout for a goal, Mali were rewarded for their attacking play when Drame put them ahead with a beautiful strike, giving Ghana goalkeeper Danlad Ibrahim no chance.
While two-time former champions Ghana struggled to play their natural game in te puddles of water, Mali seemed to thrive in these conditions and went into half time with a one-goal advantage.
More From This Section
Mali doubled the lead, quite deservingly so, in the 61st minute through Traore. A gaffe by Danlad, who raced off his line to make a clearance, ended up handling Traore's shot into his own net.
There was a glimmer of hope for Ghana when Mohammed converted a penalty after Sadiq Ibrahim was felled by Fode Konate.
Having struggled to come to terms with the conditions for a major part of the game, Ghana, in search of the equaliser, showed urgency in the last 20 minutes of regulation time.
In the first half, Ghana did manage to find the net but Ibrahim Sulley's effort was disallowed as there was a foul on a Mali player.
Ghana played the last few minutes of the game with ten men after injury forced Gideon Mensah off the pitch.
The result meant it was a repeat of the U-17 African Cup of Nations final where Mali beat Ghana.
Mali will meet the winner of the match between Spain and Iran in the semifinal.