Rahmat Shah struck an Afghanistan Test record 231* while partnering Hashmatullah Shahidi in an unbeaten 361-run stand on the third day of the first Test against Zimbabwe.
Captain Shahidi finished a punishing, wicketless day for the six-man Zimbabwe attack on 141 for his second Test century.
Starting the day on 95-2, the tourists were 425-2 by the close of play at Queens Sports Club in southern city Bulawayo.
Zimbabwe, who scored a record 586 after winning the toss and batting, hold a 161-run lead going into the fourth day of the match.
Shah bettered the previous best Afghan individual score of 200* by Shahidi against Zimbabwe in Abu Dhabi three years ago.
He has faced 416 balls after coming in when Afghanistan lost opener Sediqullah Atal in the second over, and struck three sixes and 23 fours in his record knock.
His previous highest score was 102 against Bangladesh in 2019, the first Test century by an Afghan.
Inexperienced spinner Brian Bennett was the bowler when Shah became a centurion, then a double centurion.
Shah, part of the Afghanistan team that made their Test debut in 2018 against India, struck a single to reach 100, and a four to get to 200.
Shahidi proved a superb partner. He has faced 276 deliveries and hit 16 fours.
The skipper reached his century with a pull shot to fine leg off Newman Nyamhuri, one of two Test debutants in the Zimbabwe attack.
Zimbabwe, seeking a first Test win since beating Afghanistan three years ago, were guilty of some wayward bowling and sloppy fielding.
Medium pacer Trevor Gwandu was a wicket-taker, but also the joint most expensive Zimbabwe bowler, conceding 86 runs.
Afghanistan won T20I and ODI series ahead of the Test, the first of two with the second set to start on 2 January.
© Agence France-Presse
Photo: @ZimCricketv/X