South Africa fought back to defeat Bangladesh by 12 runs in a tightly fought, rain-shortened Twenty20 match on Wednesday. Bangladesh needed 122 to win under the Duckworth-Lewis system after South Africa was held to 118-7. The match was reduced to 14 overs per side because of rain.