The game was even for much of the opening 25 minutes, with only long-range efforts representing good shots on goal.
Tunisia were guilty of some reckless tackling, with Zambia striker Emmanuel Mayuka and keeper Mweene both receiving treatment.
Later in the half 2012 winners Zambia came close through captain Rainford Kalaba, but he saw his effort tipped wide by Tunisia goalie Aymen Mathlouthi, with Tunisia looking shaky in defence.
Despite being ranked lower, Zambia grew to dominate the game, with Stoppila Sunzu forcing Mathlouthi into a close-range stop, and Mayuka heading straight at the keeper.
The biggest opportunity was missed at the end of the half, when Southampton striker Mayuka scuffed a golden chance from six yards out, after a long ball was not dealt with by Tunisia, who have only kept one clean sheet in 10 Cup of Nations matches.
After the break, Zambia continued to dominate, and deservedly led just before the hour. The impressive Kalaba dinked a delicate cross to the back post, where Mayuka scored into the roof of the net and celebrated with a string of backflips.
Mayuka was far less mobile 10 minutes later, after being forced off with a potentially serious groin injury that saw him leave the stadium in an ambulance. Just a minute after he went off, Tunisia were level, Ahmed Akaichi scoring from close range from a Mohamed Ali Moncer corner.
Tunisia took charge after their goal, and should have had a penalty after 82 minutes when Emmanuel Mbola felled Youssef Msakni in the box, but the referee waved it away.
However, Tunisian protests turned to celebrations as Chikhaoui found a late winner.