South Africa swept to a 107-run victory over England on the fourth day of the first Test at Centurion Park on Sunday after taking seven wickets in the second session to go ahead in the four-match series.
England, needing an improbable 376 to win, were bowled out for 268 just before tea as their bottom order offered scant resistance to a barrage of pace once South Africa had taken the second new ball.
Kagiso Rabada proved the destroyer-in-chief with 4-103, assisted by Anrich Nortje who took three wickets for 56 runs.
"Our bowling unit was very effective and it is a massive confidence booster for our team," said South Africa captain Faf du Plessis after arresting a run of five successive Test defeats.
"We played with great skills over the last two days with contributions from everyone."
With this win, the hosts open their account in the World Test Championships standings. The team gains their first 30 points in four Tests.
It was the first Test win for Proteas after five successive defeats and sixth consecutive win at Centurion. This is the first time that South Africa have defeated England in a Boxing Day Test.
England had been hoping for heroics in a delicately poised contest as they started the day on 121-1 and still looked capable of a dramatic win despite losing two wickets by lunch.
But the turning point proved the key wickets of both England captain Joe Root and potential match-winner Ben Stokes.
Stokes, who had led England's highest ever successful run chase when they scored 362-9 at Headingley to beat Australia earlier this year, was bowled by spinner Keshav Maharaj for 14 just as he and Root were increasing the run rate after England had gone to lunch on 171-3.
The second new ball then accounted for Jonny Bairstow, who hit a boundary off Rabada before edging the second delivery of the 81st over to gully, where Zubayr Hamza took a sharp catch.
Root battled his way to 48 before being caught behind, effectively ending England's hopes.
"We turned up today with a real belief that we could win but unfortunately we weren't able to do it," he said.
He was undone by a fuller delivery from Nortje, playing a poor shot outside off stump and getting a nick through to wicketkeeper Quinton de Kock.
The last four wickets followed quickly thereafter as the tail was swept away by Rabada and Nortje.
Rory Burns (84) and Joe Denly (31) were dismissed before lunch to tip the contest in the home team's favour.
The teams now move onto Cape Town for the second Test at Newlands from January 3-7.