Imran Tahir has "single-handedly" made South Africa a strong team in the past two years, according to captain Faf du Plessis.

Spinner Tahir claimed figures of 4-29 from his seven overs as the Proteas claimed their first win at this year's Cricket World Cup by resoundingly beating Afghanistan by nine wickets in Cardiff.

The 40-year-old, who will step down from international cricket after the competition, tore through Afghanistan after the second rain delay, helping restrict them to 125 on a pitch that was not conducive to spin.

"Tahir has probably single-handedly made us a very strong team for the last two years with his ability to get wickets at any stage, his control, so much variation," said Du Plessis after the match.

"Even on a pitch like today when the boundaries are really small and the ball's not spinning much, somehow he still finds a way. That's the difference between the good ones and the great."

The Proteas laboured in reaching a DLS-amended target of 127, with Quinton de Kock scoring 68 off 72 and the struggling Hashim Amla requiring 83 deliveries to make an unbeaten 41 in their 28.4 overs before getting over the line thanks to a huge Andile Phehlukwayo six.

"Naturally, Quinton always plays quite freely but it was important for him to see off the new ball," said Du Plessis. "We needed a 60 or 70-run partnership and we could work on the run rate later.

"It was important for Amla to get among the runs. The next four games, net run rate is not going to play a massive role if you win those games. We need Hashim to score runs for us, so I'm just happy for him to get a not out and get some runs on the board."

Afghanistan replaced Najibullah Zadran, who posted scores of 51 and 43 in their opening two World Cup matches, with Asghar Afghan for the match at Sophia Gardens.

Captain Gulbadin Naib lamented his team's failure to correct their errors from previous matches and suggested Najibullah could return to the line-up for Tuesday's meeting with England at Old Trafford after Afghan was out for a duck.

"We need to play much better cricket. We did well in the opening overs but we repeated the same mistakes again," said Naib.

"We have a lot of batsmen with Rashid Khan coming in at nine, but we need the lower-middle order to push the scoreboard.

"Asghar is a senior player, that's why we gave him a chance. Najib is an outstanding batsman, we'll have him in the team in the upcoming matches."