South Africa were on course to chase down a herculean 205-run target with just 15 runs required off the final two overs. However, Tom Curran denied the hosts a win after scalping two wickets in the last two balls.
Chasing 205, skipper Quinton de Kock (65) and Temba Bavuma (31) provided a solid foundation and stitched the 92-run opening stand.
David Miller (21), JJ Smuts (13), and Dwaine Pretorius (25) played brief knocks but could not drag their side over the line and were left short of two runs in the last over. Chris Jordan and Mark Wood both picked two wickets each.
Earlier, Proteas won the toss and asked the visitors to bat first. Opener Jason Roy and all-rounder Ben Stokes played quick-fire knocks to help visitors post massive 204-7 in their 20 overs. Proteas seamer Lungi Ngidi bagged two wickets while Andile Phehlukwayo scalped wickets.