The Warriors created better chances in the first half and their efforts were rewarded on 38 minutes when Ishmael Wadi opened the scoring with a superb header.
But Gabadinho Mhango quickly restored parity before securing the comeback win 13 minutes into the second half to give Meke Mwase's side their first victory in Cameroon.
The game was played at a frenetic pace in the opening stages as the two teams knew three points would boost their chances of staying alive in the tournament.
The contest lacked any real quality early on, but the chances started coming after a scrappy first 10 minutes, with Richard Mbulu standing the ball up to the back post from the left and Stanley Sanudi's first-time volley flew high and wide.
Zimbabwe's first sniff at goal came on 13 minutes when Wadi headed wide at the back post after an attempted clearance deflected up into the air.
The JDR Stars midfielder was presented with another chance two minutes later, but he couldn't poke the ball past Ernest Kakhobwe after being played through on goal.
Gerald Takwara was wasteful as he failed to make clean contact with an 18th-minute corner from the right and his header bobbled out for a goal-kick, while Bruce Kangwa's first-time volley flew wide of the left post on 22 minutes after he was teed up by Tino Kadewere just outside the area.
Wadi then forced Kakhobwe to push his header away at the back post from Kangwa's 26th-minute cross on the left and the Malawi goalkeeper had a more routine save to make from Knowledge Musona's long-range free-kick nine minutes later.
The constant pressure from Norman Mapeza's troops paid dividends on 38 minutes when Wadi arced a header over Kakhobwe and into the back of the net from 14 yards out after getting on the end of Onismor Bhasera's left-flank cross.
However, their lead lasted just five minutes as Mhango side-footed past Mhari on the half-volley after being picked out at the back post by Francisco Madinga's fine cross on the left.
Madinga was just a fraction away from putting the Flames in front five minutes into the second half with a shot from an angle on the left that grazed the right post and went out over the deadball line.
The Warriors threatened to take the lead again on 56 minutes when the opposition defence failed to clear their lines from a corner and Kangwa couldn't force the ball home following a scramble at the back post.
Instead it was Malawi celebrating their second goal two minutes later as Mhango ran onto his own ball after attempting to play a one-two with Madinga, which caused hesitation from Zimbabwe's defence and the Orlando Pirates forward beat the advancing Mhari with a clever finish.
Mhango almost grabbed his hat-trick soon afterwards when he raced onto a long ball over the top and advanced on goal from the left, but he was unable to squeeze the ball past Mhari on this occasion.
Zimbabwe toiled away in the closing stages in an attempt to get back into the match, but the Flames held on for an important three points.