Bafana went ahead through Lebogang Manyama with a dominant display in the first half, only for a late resurgence by Chipolopolo seeing Brian Mwila and Lubinda Mundia netting in a match of two halves.
Eleven changes from their stunning 2-0 Africa Cup of Nations qualifying win over Nigeria on the weekend saw Stuart Baxter offer opportunities to his charges who never featured in Uyo.
Andile Jali, the most experienced in the line-up with 42 caps, was handed the captain's armband, as he played alongside Tiyani Mabunda in central midfield, while Kermit Erasmus and Lebogang Manyama lead the attack.
Aubrey Ngoma and Lorenzo Gordinho both made their senior international debuts in midfielder and defence respectively, with Darren Keet starting in goals.
The hosts won the first corner of the match after just six minutes, with Kermit Erasmus' floated delivery poorly dealt with by Zambia goalkeeper Allan Chibwe but his defence quickly reacted to clear their lines.
On the quarter-hour mark, Manyama cleverly picked out Sifiso Hlanti's run behind the defence, but the full-back lost his footing and couldn't get his shot away.
Just over seven minutes later, Bafana found the opener as Erasmus spotted Manyama's late run into the box before setting the midfielder up to head home his first international goal from close range.
The home side's dominance continued, with goalscorer Manyama picking out provider Erasmus' run into the box, but the latter rushed his volley and failed to find the target.
Two minutes later Percy Tau got in on the action as he cut inside from the right flank, beat his marker but couldn't get enough curl on his shot as he watched it go just wide of the far-post.
Manyama had a chance to get a second in the 37th minute, but Chibwe was alert to the danger and quickly snuffed out the lobbed pass from under the nose of the Cape Town City star.
The visitors made a triple sub before the half-time break, and it looked to have sparked a change as they won a free-kick in a dangerous area, however, the goalward shot from Godfrey Ngwenya didn't trouble Darren Keet.
A half-time substitution saw Ronwen Williams getting his fourth cap as the SuperSport United gloveman replaced Keet between the posts.
Three minutes in, Chipolopolo showed early impetus as they won their first corner of the match, which unfortunately resulted in a wayward header at the back-post.
A minute later, Tau released Ngoma down the left but the latter's left-footed shot from an acute angle was off target.
Williams was called to action within 10 minutes of coming on, as he palmed captain Donashano Malama's rifled effort out for a corner.
Ngoma had a shout for a soft penalty just before the hour-mark waved away by the referee, after he went down under pressure from Lawrence Chungu inside the box.
Brian Mwila came on just after 61 minutes and found the equaliser 10 minutes later, beating Williams with a powerful left-footed drive at the near-post.
With just over 15 minutes to play, Manyama had another good chance at goal as picked up a loose ball inside th box but Chibwe made himself big to deny the midfielder his brace.
A minute later, substitute Lebogang Phiri did well with a silky turn towards goal, before letting rip from distance but his shot sailed inches over the crossbar.
The visitors then went ahead with just over 10 minutes remaining, with Lubinda Mundia scoring on debut as he kept his nerve to beat an on-rushing Williams after leaving Gordinho in his wake.
Bafana pushed for an equaliser in the final five minutes, and could have found it but for Tau's volley from close range being blocked off the line by Malama.
With a minute to go, Tau's attempted cross from the right flank was blocked by the hand of a defender and the referee, in concultation with his assistant, rightfully awarded a free-kick on the edge of the box.
The resultant free-kick was poorly dealth with by the Zambian defence as the ball fell for Gordinho at the far-post, but the defender's shot was superbly kept out by Chibwe.
The defeat sees Bafana's 18-game unbeaten streak, dating back to October 2015, come to an end in Baxter's second match since his reappointment in May.
South Africa: Keet (Williams 46'), Mobara, Hlanti, Gordinho, Coetzee, Jali, Mabunda, Tau, Ngoma (Phiri 59'), Manyama, Erasmus (Gabuza 79').
Subs: Langerman, Hlatshwayo, Zungu, Vilakazi.
Zambia: Chibwe, Chungu, Shamujompa, Kampamba, Katema, Nsofwa, Sikombe, Malama, Nshimbi, Mulenga, Mwila.