The victory was coach Gordon Igesund's third victory from his six games in charge, and served as vital preparation ahead of the Africa Cup of Nations (Afcon) tournament in January next year.
The winning goals came from two first half goals from Lehlohonolo Majoro and Siphiwe Tshabalala, and a second half May Mahlangu penalty.
Bafana headed into the clash looking to get back to winning ways, after the national outfit were defeated 1-0 by Zambia on November 14, in the Nelson Mandela Challenge at the FNB Stadium.
The hosts were in with their first real opportunity of the clash and deservingly took the lead through Kaizer Chiefs striker Majoro, who replaced Bernard Parker in the starting line-up, after Parker was ruled out due to an ankle injury.
Lerato Chabangu picked up a loose ball after the Malawi defence failed to clear their lines, before using a superb piece of skill to beat his marker, getting his shot away on target and forcing goalkeeper Simplex Nthala to make a save.
Nthala thwarted Chabangu but spilled the shot, allowing Majoro to pick up the rebound and slot into an open net, to hand Bafana the early lead.
Gordon Igesund's side continued to push for a second and were rewarded four minutes later, when Tshabalala doubled Bafana's lead.
Siboniso Gaxa made a darting run up the right flank and lifted a ball forward towards Reneilwe Letsholonyane, who attempted a speculative shot at goal.
Letsholonyane's shot took a deflection from a Malawian defender, sending the ball into the path of Tshabalala, who made no mistake from close-range, scoring his 10th goal in national colours.
Malawi struggled to test the Bafana defence, with their first shot coming six minutes from the break, but David Banda failed to trouble Bafana goalkeeper Itumeleng Khune, who was handed the captain's armband for the fixture.
Malawi came out into the second half looking to reduce the two goal deficit and were handed a golden opportunity to do so, three minutes into the second period.
Siyabonga Sangweni was adjudged to have brought down Robert Ng'ambi inside the penalty area, despite claims that the Malawian took a dive in order to be awarded the spot-kick.
Josephy Kamwendo stepped up to take the penalty and thundered home into the top left corner of Khune's goal, reducing Bafana's lead to just one.
Second half replacement Daine Klate saw his free-kick effort comfortably saved in the 69th minute by Nthala, who kept out the Orlando Pirates midfielder, as the game settled down.
Four minutes later, Malawi's James Sangala brought down substitute Tokelo Rantie inside the penalty area, ensuring the second penalty of the game.
Mahlangu dispatched his penalty attempt goalwards past Nthala, restoring South Africa's two goal advantage. – Sapa.