England needed seven from their final seven balls with five wickets remaining, but collapsed in the face of Ngidi’s off-cutters on a slow wicket to add five runs for the loss of four wickets.
South Africa had posted 177 for eight in their 20 overs, a record score in East London, but England were cruising when Jason Roy blasted 70 from 38 balls and captain Eoin Morgan an excellent 52 from 34.
The visitors lost their nerve at the finish, though, in what will be a tough lesson at the start of the build-up to the Twenty20 World Cup to be played in Australia in October.
(Reporting by Nick Said, editing by Ed Osmond)