Tahir ran through the West Indies' top and middle order, while offspinner Johan Botha finished with 2-48 as the Proteas' unusually spin-heavy attack shone at Feroz Shah Kotla stadium.
South Africa picked three specialist spinners for its first game of the tournament.
Botha had Chris Gayle caught at slip off the third ball of the innings, before Darren Bravo counterattacked with 73 in a 111-run partnership with opener Devon Smith.
But Botha and Tahir returned with a burst of five wickets to halt the progress and Dale Steyn wrapped up the tail with his 3-24.