Excellent against SA, poor against NZ – but what was Virat Kohli’s Test batting record against Australia, England and others?

Virat Kohli bats
Virat Kohli averaged 43.76 in Tests in Australia

Unlike some batters who manage to face all Test-playing nations during their careers, the recently retired Virat Kohli did not. As much as he enjoyed a prolific career, he never faced Pakistan in a Test, and he also missed out on Tests against minnows like Zimbabwe, Ireland, and Afghanistan.

Despite that, his body of work was exceptional—and he scored double centuries against all but one of the seven teams he did face in Tests. The only instance where he missed out on the double was Australia, against whom his highest Test score was 186.

So, against which sides was Kohli the most prolific? It makes for interesting reading, because big players come good against top opposition—and that certainly proved true for Kohli (although you probably already knew that). Let’s take a look at where he scored his runs:

7. Bangladesh – 536 runs from 8 Tests (highest score: 204, average: 48.72)

Kohli’s record against Bangladesh may seem modest compared to his outings versus Test heavyweights, but it’s still noteworthy. Across eight Tests played at home (Ranchi, Hyderabad, Delhi) and away (Chattogram), he compiled 536 runs at an impressive average of 48.72.

His highlight was a commanding 204 in Ranchi in February 2017, where he carved cover drives and lofted on-drives off pace and spin alike. That double century helped India declare at 687/6 and secure an innings victory.

Kohli’s consistency, which saw he score four fifties and the double-century against the Tigers, underscored his mastery over Bangladesh’s spinners and seamers.

6. New Zealand – 959 runs from 14 Tests (highest score: 211, average: 38.36)

Touring the seamer-friendly venues of New Zealand has tested many subcontinental batsmen, but Kohli rose to the challenge. Over 14 Tests, he accumulated 959 runs at 38.36.

His best came in Indore in October 2016, not surprisingly at home, where he scored 211 against a Kiwi attack featuring Trent Boult and Matt Henry. Abroad, Kohli’s 105* at Wellington in 2014 showcased his technique against swing bowling as he demonstrated his adaptability on the greener tops of New Zealand.

Though his average is lower than against other sides, Kohli’s ability to conquer seam and bounce highlighted his all-surface abilities.

Also read: 7 interesting records from Virat Kohli’s Test career, including his role in a record 8th-wicket partnership against England

5. West Indies – 1,019 runs from 16 Tests (highest score: 200, average: 48.52)

The bounce and pace of Caribbean pitches can undo even the best, but Kohli compiled 1,019 runs at 48.52 in 16 Tests. He recorded a maiden Test 200 at North Sound in July 2016 – as he set the platform for a huge innings win by smashing the West Indian attack all over the park.

His 139 at Rajkot in 2018 and 121 at Port of Spain in 2023 further underline his comfort against West Indies’ traditional strength. Kohli’s near-50 average shows how comfortable he was against the men from the Caribbean.

4. Sri Lanka – 1,085 runs from 11 Tests (highest score: 243, average: 67.81)

Sri Lanka’s spin fortress never intimidated Kohli. In 11 Tests, he racked up 1,085 runs at a staggering 67.81 average. In 2017 Sri Lanka ran into Kohli in the form of his life.

He banged a ton at Eden Gardens in eth first Test before scoring doubles in the each of the next two Tests – 213 and 243 in Nagpur and Delhi respectively. In Galle in 2017, he showed he could do it away from home as well as he posted an undefeated 103. His spin-batting mastery turned Sri Lankan tours into run-making feasts.

3. South Africa – 1,408 runs from 16 Tests (highest score: 254 not out, average: 54.15)

Many subcontinental batsmen have struggled in South Africa, but Kohli thrived on bouncy pitches. Across 16 Tests, he amassed 1,408 runs at 54.15. His best effort against eth Proteas was the legendary unbeaten 254* in Pune (2019) which he scored against a South African attack that featured Kagiso Rabada, Anrich Nortje and Vernon Philander.

As much as that was a not a game on a bouncy South African strip it nevertheless epitomized his approach to pace. Abroad, he scored 119 and 96 in a single Test in Johannesburg.

2. England – 1,991 runs from 28 Tests (highest score: 235, average: 42.36)

Touring England is the acid test for swing mastery, yet Kohli compiled 1,991 runs at 42.36 in 28 Tests. His top scores in England were 149 at Edgbaston and 103 at Trent Bridge – both in 2018 and both illustrating his ability to leave well and adjust to swinging balls.

While he never scored a double-hundred in England, his knock of 235 at Mumbai’s Wankhede Stadium was a career defining innings as he turned a potential first innings deficit into a win by an innings – all built on the back of his epic eighth wicket stand with Ravi Ashwin.

1. Australia – 2,232 runs from 30 Tests (highest score: 186, average: 43.76)

Australia proved Kohli’s greatest run factory. In 30 Tests, he racked up 2,232 runs at 43.76. As much as he was prolific against the Baggy Greens, they were the only side he didn’t score a double century against.

His highest, 186 at Ahmedabad (2023), came when he attacked against a bowling unit that included Mitchell Starc and Cameron Green as quicks and a host of spinners including Nathan Lyon and Matthew Kuhnemann. After Australia batted first and scored 480, Kohli led the response, steering India to a first innings lead in a run-heavy Test that eventually ended in a draw.

Kohli’s run tally against Australia cements his reputation as a batsman who never takes a step back, often dominating the very best attacks under testing conditions.

Read next: 5 Sachin Tendulkar Test records well worth remembering – the 90s got the better of him sometimes