England missed a run-out off the final ball as South Africa won the first Twenty20 international by three wickets in Cape Town.
England made only 134-8 despite being well set on 50-1 after six overs, Jos Buttler top-scoring with 32 not out while spinner Imran Tahir took 4-21.
The hosts needed 15 from the final over and two off the last delivery.
Chris Morris scampered two as bowler Reece Topley failed to collect Joe Root’s throw from long-off.
The defeat was England’s fourth in a row following their 3-2 reverse in the one-day series, but only their first loss in seven Twenty20 internationals.
The second game of the two-match series takes places in Johannesburg on Sunday.
That will be England’s last competitive match before their opening game of the World Twenty20 on 16 March.
England take it to the wire
England knew they needed wickets to have any chance of winning and their hopes were boosted when Chris Jordan dismissed AB de Villiers cheaply and Ben Stokes removed Hashim Amla for 22 in a wicket-maiden.
Adil Rashid claimed the wicket of JP Duminy and fellow spinner Moeen Ali struck twice to make the hosts nervous.
David Miller hit a six and a four in the 18th over but Jordan had him caught on the boundary and bowled David Wiese via an inside edge in a superb penultimate over that cost only six runs.
After Kyle Abbott ran a single off the first ball of the final over, Morris struck successive full tosses from Topley for four and six.
However, a dot ball was followed by two to long-off, leaving Morris on strike for the last delivery of the game.
Root’s throw on the bounce was accurate but Topley, at the non-striker’s end, fumbled the ball with Morris short of his ground.
Had Topley completed the run-out, the game would have gone to a super over.
Brilliant Tahir pegs back England
Alex Hales helped get England off to a promising start with the bat but became Tahir’s first wicket when he was caught for 27, Duminy taking a high catch despite team-mate Kagiso Rabada almost rugby-tackling him in a race for the ball.
Three balls later Root fell for eight to Wiese’s first delivery and Stokes was stumped off Tahir the ball after hitting a muscular six.
Tahir then dismissed Morgan for 10 and Moeen first ball, and came within a whisker of a hat-trick as Jordan was beaten by a googly that went between bat and pad.
Helped by the accurate Wiese, who conceded only 19 off four overs, South Africa allowed only one boundary between the start of the eighth over and the end of the 14th.
England’s 100 came up in 16th over but with Buttler restrained by the circumstances, they were unable to set the total they would have desired.
South Africa are now undefeated in their last 13 matches against England at Newlands in international cricket – a run that goes back to January 1957.
They have won 10 and drawn three matches having played six Test matches, five ODIs and two T20s.
‘Batting let us down’
England captain Eoin Morgan: “After a pretty poor batting display our bowlers nearly pulled it out of the bag. Stokes and Jordan got as much as they could out of the pitch. The more and more we play the more responsibility the bowlers take on their shoulders. We created chances with an under-par score. That is a huge positive.
“When the ball was new it skidded on but when it was older the pace came off and it became more difficult. It was probably not as bad as we displayed with the bat though.
“We have had a reasonably good run in T20s and probably should have won tonight when we didn’t deserve to.”
‘The million dollar man, saved us’
South Africa captain Faf Du Plessis: “That’s a massive get-out-of-jail card. Neither team played their best because the wicket was two-paced and not a normal T20 wicket, but I have a smile on my face because we won.
“We didn’t start well. Twenty20 cricket is all about executing plans and we let them get away at the start. Our bowlers came back by getting wickets.
“We tried to learn from their mistakes, maybe they went a bit hard at the ball, and we tried to play deeper. We messed it up a little but Chris Morris, the million dollar man, saved us.”