The FIFA Disciplinary Committee watched TV pictures of Frings hitting Argentine striker Julio Cruz in the face in an on-pitch ruckus following Germany's win in a penalty shootout in the quarter-final before making their decision.
"Frings is suspended for two matches, but one is a suspended punishment," a FIFA spokesman said.
Frings will have to sit out a second game if he is charged with any other kind of misconduct over the next six months.
The images were broadcast on Italian Sky Television on Sunday, hours after FIFA had said it was looking into Argentinian midfielder Maxi Rodriguez hitting Germany’s Bastian Schweinsteigger.
FIFA President Sepp Blatter had made clear his anger over the melee occurring, but the loss of the influential midfielder could be a real blow to the hosts given his outstanding form at the tournament so far.
The defensive midfielder is likely to be replaced for the match by Borussia Dortmund's midfielder Sebastian Kehl.
Germany's team manager Oliver Bierhoff said he was unhappy with the decision.
"We are disappointed. We believed that we had presented a sufficient explanation for him to be cleared," he said.
Bierhoff said the TV pictures showed that the referee, Lubos Michel, and the two assistant referees were standing next to Frings at the time of the incident but had not given him any punishment.
Markus Siegler, FIFA's head of communications, denied that the Italian football federation played any role in bringing the pictures to FIFA's attention, saying: "There was no attempt from the Italian federation to incite FIFA to do something.
"This footage was shown on a public channel in Germany," he said.
The 29-year-old all-action Werder Bremen midfielder had protested his innocence, saying he was only defending himself against punches from Argentinian players.
Germany's players remain confident despite FIFA's decision. "Whoever comes in is ready to come in and do the job. Sebastian Kehl is just as good a player as Torsten Frings," captain Michael Ballack said.
Frings would be available for the final on Sunday should Germany beat Italy.