He made his Test debut against Australia at Cape Town in November 2011 and was a regular part of the squad for four years. In the Test series against Pakistan in UAE in 2013, he was not picked for the first Test, but he came back strongly in the second by bagging a five-wicket haul on the first day of the Test match. Tahir was left out once again after one bad Test with the ball against India and was replaced by Robin Peterson, but he continued to do well in the shorter forms of the game. He continued to be a regular member of the South African side in all formats and played Test matches in spin-friendly conditions.