Mali finished third in the Africa Cup of Nations for the second year running after beating Ghana in an entertaining third place play-off.
Mahamadou Samassa put the Eagles ahead with a powerful header, before captain Seydou Keita doubled their lead, stabbing home from close range.
Ghana midfielder Kwadwo Asamoah pulled one back with his shot from distance beating keeper Soumbeyla Diakite.
Substitute Sigamary Diarra sealed Mali's victory in injury time.
Ghana's Mubarak Wakaso spurned the chance to top the goal-scoring charts, blazing a penalty high over the bar, in a rain-sodden Port Elizabeth.
The two sides were meeting in this fixture for the second year in a row and for the fourth time in the last two tournaments - having also met at the group stages at both.
Ghana started positively with full-back Richard Kissi Boateng breaking into the box from the left, but he was unable to find striker Asamoah Gyan with his pull-back.
Gyan was then gifted an opening from Adama Coulibaly, as the Mali defender gave the ball away to the Ghana striker, who could only blaze well over from a good position.
Haven't we met before?
Mali and Ghana have met four times in two consecutive Nations Cup tournaments - with the Black Stars prevailing in the two group contests and the Eagles winning both third place play-off deciders
Mali showed their intent with Samassa latching on to a long ball behind the Ghana defence, before lashing his effort straight at Fatau Dauda in the Black Stars goal.
Samassa then deservedly opened the scoring on 21 minutes, powering his diving header past Dauda, after great work from Adama Tamboura on the left to break forward and supply a pinpoint cross for the big Chievo striker.
Asamoah had a chance to equalise almost immediately, but pulled his shot badly, before slamming a loose ball into the side netting.
Wakaso then hammered in a shot from the edge of the box, stinging Diakite's hands, as the Mali keeper pushed it away.
Samassa almost put Mali two up just before the break, powering forward to squeeze his shot through defender Isaac Vorsah and Dauda, only to see it rebound off the outside of the post.
Samassa soon turned provider, nodding on for captain Seydou Keita to control beautifully, but shoot just wide of Dauda's post.
Gyan then hammered a free-kick over the bar from some distance right on half-time, as Mali went in at the break in control of the contest.
And the Eagles took firm control just after the break as their talisman and skipper Keita put them two up. Samassa once more supplied the former Barcelona midfielder, who slid home from eight yards.
Ghana winger Christian Atsu could well have pulled one back for Ghana as he was allowed to turn in the box, but slashed his effort high over the bar.
Wakaso - who had already scored three penalties in the finals - had a chance to add to his tally, after what looked like a harsh penalty decision, but the Ghana midfielder fired over from the spot.
At the other end, Diakite was relieved to finally gather, after spilling the ball no less than three times in succession, as the slippery conditions almost allowed Ghana an opening.
Keita then had the ball in the Ghana net for a third time, but was adjudged offside after Cheick Tidiane Diabate's flick-on.
Ghana substitute Albert Adomah spurned a good chance from close range, before Asamoah finally beat Diakite, with the Malian keeper completely misjudging the flight of the Juventus midfielder's swerving shot.
Ghana tried in vain to force an equaliser and automatic penalties late on, but their pressure came to nought, as Asante received a yellow card for diving in the box.
Diarra then latched on to a long ball from a Mali break to shoot across Dauda's goal and into the far corner to secure third spot for the Eagles once more.
Mali coach Patrice Carteron:
"I'm proud of the achievement of my players. They worked hard to get the bronze medals.
"I think the people back home will be very happy with our performance."
Ghana coach Kwesi Appiah:
"I believe the players performed very well.
"We had our chances and did not take them. These players can do well if given further opportunities because they have gained much experience."
- 16 So Diakite
- 02 Diawara
- 03 Tamboura Booked
- 04 A Coulibaly
- 19 S Coulibaly
- 23 O Coulibaly
- 08 K Traore
- 12 Keita
- 17 M Traore
- 09 Diabate
- 15 Samassa (S Diarra - 78' )
- 01 Samassa
- 22 Yirango
- 05 I Coulibaly
- 13 Wague
- 21 Ndiaye
- 06 Sissoko
- 11 S Diarra
- 14 Yatabare
- 18 Sow
- 20 Sa Diakite
- 07 C Diarra
- 10 Maiga
- 16 Dauda
- 02 R Boateng
- 05 Awal
- 15 Vorsah Booked
- 21 Boye (Mensah - 46' )
- 23 Afful
- 07 Atsu (Adomah - 70' )
- 14 Asante Booked
- 20 Asamoah
- 22 Wakaso Booked
- 03 Gyan (Clottey - 75' )
- 01 Adjei
- 12 Larsen
- 04 Pantsil
- 13 Akaminko
- 19 Mensah
- 06 Annan
- 08 Agyemang
- 09 D Boateng
- 10 Adomah
- 11 Rabiu
- 17 Clottey
- 18 Boakye
Ref: Eric Otogo-Castane