November 16, 2025
South Africa pulled off a rare and remarkable win at Eden Gardens after defending a target of 124 on a gripping final day. India fell for 93 in the fourth innings. The match produced relentless tension from the opening session to the final wicket. The pitch offered bite, bounce, and uneven pace.
Both bowling units attacked with discipline. Batters fought for every run. South Africa celebrated a fantastic result after producing commitment with the ball, nerve with the bat, and belief in conditions that challenged every technique.
India walked out needing 124. They carried confidence from previous home chases under pressure. The crowd expected a steady pursuit. The surface, though, demanded precision. South Africa sensed opportunity. They bowled full, attacked the stumps, and forced early mistakes.
India slipped to 38 for 4. The chase lost rhythm. Washington Sundar looked organised and tried to settle the innings, but found no support. The ball gripped and jagged. The pressure grew with every over. South Africa stayed aggressive and cut every release option. India never recovered from the early damage.
The 124-run target became the second-lowest India failed to chase in Test cricket. Only their 120-run defeat against West Indies in Bridgetown in 1997 stands lower. It also became the second-lowest target South Africa defended in Test history. The only lower defence came in 1994, when they held off Australia at Sydney with 117.
The win ended South Africa’s long wait for a Test victory in India. Their last came in Nagpur in 2010, when they dominated the match with an innings win. Between that triumph and the Kolkata Test, South Africa played eight matches in India. They lost seven. One ended without a ball being bowled after the opening day.
This Kolkata victory carried weight. South Africa came with a young group, a captain in strong form, and a bowling unit built for control.
The Test produced numbers that underline its place in history. All four innings stayed under 200. This was the first Test in India with such a sequence. Only 11 other Tests in the game’s history ever produced four sub-200 totals. The previous one came 66 years ago.
South Africa finished with a match aggregate of 312. It is their second-lowest total in a Test win where they got bowled out twice. Their lowest score was 298 against England in 1957. The 312 also became the lowest total by any visiting side in a Test win over India despite two dismissals. Pakistan held the previous record with 365 in Bengaluru in 1987.
Their first innings of 159 added another layer. It is their third-lowest first-innings total in a Test they went on to win. Only two totals from the early 20th century sit below it. It also became the third-lowest first-innings score by a visiting team to win a Test in India.
India’s 93 in the final innings marked their fourth-lowest fourth-innings total in Test cricket. It also became their third-lowest total against South Africa and their second-lowest at home against them, behind the 76-all-out in Ahmedabad in 2008.
For a team with a proud history of home dominance in chases, the defeat stood out. Before the 2024–25 season, India owned a record of 30 wins from 33 sub-200 chases at home. The other three ended in draws. They later suffered a defeat against New Zealand in Mumbai while chasing 147.
Temba Bavuma delivered the defining innings of the match. His unbeaten 55 in the 2nd innings stood as the highest score of the match and the only innings above 39. He played late. He gave South Africa a target that carried weight.
The win ended wicketkeeper Dhruv Jurel’s perfect start. He arrived in the match with seven wins from seven Tests. South Africa stopped that streak with discipline.
Simon Harmer took 8 for 51 in the match. His figures stand as the second-best by a South African bowler in India, behind Dale Steyn’s 10 for 108 in Nagpur in 2010.
India now enters the next Test with questions around their batting approach in difficult conditions. Their bowlers did enough to keep the game alive. No one crossed 40. KL Rahul’s 39 was the highest from the home side.
Player of Match: Simon Harmer