Matches (17)
IPL (2)
PAK v WI [W] (1)
County DIV1 (5)
County DIV2 (4)
WT20 WC QLF (Warm-up) (5)

The Galle demolition to the Durban miracle - Sri Lanka's recent dominance over South Africa

They've met four times since 2018 - and Sri Lanka have won all four Test matches

Dimuth Karunaratne plays a cut  •  Associated Press

Dimuth Karunaratne plays a cut  •  Associated Press

There's just one day till Christmas, but that comes around every year. There are, however, only two days remaining for Sri Lanka to revel in their incredible recent Test record against South Africa, and this kind of dominance may not reoccur for generations (in the short term, it seems unlikely that Sri Lanka can win 2-0 again on the ultra-fast Centurion and Wanderers decks). So while bragging rights are still emphatically Sri Lanka's, let us recap each of their four Test wins (out of four matches) against South Africa since 2018.
Galle, 2018. Sri Lanka won by 278 runs
On their previous trip to Sri Lanka in 2014, Dale Steyn had twice scorched his way through the Sri Lanka middle order with the old ball, and delivered his team a series-defining win. This time, he was coming back from injury, and some distance from his best. But it wasn't really South Africa's bowlers that failed. Batting first, Sri Lanka made a respectable - but hardly imposing - 287. Opener Dimuth Karunaratne had made 158 of those runs off 222 balls, remaining not out as all of his teammates perished for 26 or fewer runs.
South Africa's response was to collapse, as they took their first step in what became a series-long commitment to zealously and spectacularly sucking against spin. Sri Lanka's slow bowlers shared seven wickets while South Africa nosedived their way to 126 - Faf du Plessis a figure of lone but insufficient competence with 49. After Sri Lanka got back out and made 190, the visitors plummeted with even more dedication, getting out for 73 inside 29 overs.
Karunaratne by himself made 217 through the course of the match; South Africa, 199.
Colombo (SSC), 2018, Sri Lanka won by 199 runs
Where Galle has a reputation for taking turn fairly early in the game, there was not a lot wrong with the pitch at the SSC. Sri Lanka made 338 batting first, as South Africa's quicks had a modest first innings, and Keshav Maharaj was left to pick up 9 for 129. But then, the batting. Dear god, the first-innings batting. Several members of the visiting top order seemed like they would struggle to make contact with a hangar door, let alone a bat. They were all out for 124, and seemed to be heading for a similar score in the second innings, when Theunis de Bruyn and Temba Bavuma came together at 113 for 5 and put on a 123-run partnership - de Bruyn going on to triple figures.
Rangana Herath took his customary fourth-inning five-wicket haul, claiming 6 for 98. Some would later comment that despite there only having been two Tests, Sri Lanka basically won 3-0.
Durban, 2019, Sri Lanka won by one wicket
The most dramatic and compelling of the matches in this list. Almost two years later, it is still difficult to quite believe what transpired on the fourth day. Although South Africa were in control for much of the game, Sri Lanka vitally scrambled their way back into the match repeatedly. Some half-decent contributions from the lower order enabled the visitors to get within 50 runs of South Africa's first-innings 235. Then, whenever a South Africa batting pair threatened to bed down for a big partnership, either the left-arm spin of Lasith Embuldeniya, or the left-arm swing of Vishwa Fernando, provided a breakthrough.
But even with all that, this was still a crazy chase - Sri Lanka requiring 304 to win. In the 38th over, they were 110 for 5, with Steyn seemingly in scorching touch. But then Kusal Perera produced the greatest Sri Lankan innings, and arguably the best of all time. He quelled Kagiso Rabada, muted Duanne Olivier and, at times, laid into Steyn. When the ninth wicket fell, Sri Lanka still needed 78 and their chances of victory were vanishingly slim. Perera, though, lurched Sri Lanka closer by bludgeoning boundaries at the start of each over, before almost routinely taking the single off the fifth or sixth ball to protect his No. 11 Fernando. The second new ball became due with more than 30 still to get, but Perera squeaked Sri Lanka home sensationally, finishing on 153 not out.
Port Elizabeth, 2019, Sri Lanka won by eight wickets
Where the pitches in Sri Lanka suited them, and the Durban match was won on the back of a once-in-a-lifetime innings, this victory perhaps represents Sri Lanka's best team effort of the lot. Though shaken by the loss at Durban, South Africa were again in control early in this game, taking a 68-run first-innings lead.
As had been the case in the first Test, though, Sri Lanka's bowlers kept picking away at the South Africa batting order insistently, never letting the hosts establish a partnership greater than 60. And in the second innings (which started on the second day), the bowlers imposed themselves on South Africa to devastating effect, dismissing the opposition for 128, to set up a fourth-innings chase of 197.
As 19 wickets had fallen on the second day alone (nine of those Sri Lanka's across the first and second innings, with South Africa's second dig sandwiched in between), the match seemed like it was headed for a thrilling finish. Sri Lanka needed 137 further runs on the third morning, with eight wickets remaining. Kusal Mendis and Oshada Fernando, however, batted with bracing freedom, and turned a tough chase into a cakewalk. They hit frequent boundaries off each of the home side's vaunted quicks, and scored those 137 runs off 178 balls without losing a wicket. Mendis finished on 84 not out off 110; Oshada on 75 off 106.

Andrew Fidel Fernando is ESPNcricinfo's Sri Lanka correspondent. @afidelf