South Africa have claimed their first home Test series victory for over three years after securing a 10-wicket success over Sri Lanka in the third and final Test at Newlands.
Requiring just six further wickets on the penultimate day, the Proteas were made to work harder than expected as Thilan Samaraweera (115no) kept their potent bowling attack at bay with a superb century.
However, the Sri Lanka veteran ran out of able companions once Angelo Mathews (63) fell to Vernon Philander shortly after lunch and the tourists were swiftly bowled out for 342.
That left South Africa just two runs to chase and a comprehensive victory was sealed with just under five sessions to spare.
The result, combined with a victory at Centurion in the series-opener, secures a 2-1 series win for Graeme Smith's men, who had not previously won a Test series on home soil outright since beating Bangladesh in 2008.
Sri Lanka began day four on 138-4 in their follow-on innings, still trailing by 203 runs, but Samaraweera and Mathews resisted with a battling 122-run partnership for the fifth wicket.
The pair repelled the South Africa attack for the entire morning session to break the previous best fifth-wicket stand against the Proteas, overtaking Aravinda de Silva and Arjuna Ranatunga's partnership of 121 in Moratuwa in 1993-94.
Both men registered half-centuries before lunch, however when the second new ball was taken it brought an instant reward.
Mathews, who had showed plenty of fighting spirit in compiling 63 off 124 deliveries, was eventually undone by the pitch as a Philander delivery kept low and pinned him in front of middle stump.
The optimistic referral was a measure of Sri Lanka's desperation and Mathews' departure paved the way for a speedy home victory.
Only eight further runs were added when wicketkeeper Dinesh Chandimal edged Philander to Jacques Kallis, who continued his match to remember with a sharp reflex catch at second slip.
Thisara Perera flung the bat to useful effect with a quickfire 30 and in doing so he watched on as Samaraweera posted his second century of the series and only third outside the subcontinent.
The experienced right-hander, who made 102 in a winning cause at Durban in the previous Test, struck 13 boundaries to reach his 14th Test hundred and added another shortly after to give the tourists hope of avoiding an innings defeat.
Perera eventually holed out in the deep off Tahir (3-106) and Daminika Prasad was stumped off the same bowler in search of quick runs, leaving the last wicket pair of Samaraweera and Chanaka Welegedara requiring 13 more to make South Africa bat again.
No.11 Welegedara smashed 14 on his own, launching Kallis for a huge six to give Sri Lanka a lead before the bowler got his revenge by sending his leg stump cartwheeling.
Tea was taken with the hosts needing just two runs to complete a long-awaited series win and Alviro Petersen crunched the first ball of the innings past mid-on to seal it in style.