The result from Basel illustrated just how much coach Joachim Löw relies on Bayern Munich expertise after eight of the club's players were left out of Saturday's squad to rest following their Champions League final defeat to Chelsea last weekend.
It was the first win for Switzerland over Germany since 1956. The Swiss have not even qualified for Euro 2012.
That was a feat which Germany managed without losing a match, but they have now lost two friendly games in succession having lost 2-1 by France in February.
Their last friendly will be against Israel on May 31 before embarking on their Euro campaign against Portugal, Netherlands and Denmark in Group B.
"We didn't expect a result like this and we cannot be satisfied by it," said Löw.
"After a lot of intensive training sessions, it's clear that we didn't concentrate enough and made a lot of mistakes. The team didn't function, we weren't good today.
"But despite that, there are still two weeks to go for us to work and improve. I am not worried."
Perhaps the only hopeful sign for him looking towards Euro 2012 was that the Dutch were booed off in Amsterdam after surrendering a one-goal lead to lose 2-1 against Bulgaria.
Defending European and world champions Spain, however, showed off their impressive strength in depth when a second-string side defeated Serbia 2-0.
And England, meanwhile, gave Roy Hodgson a winning start as new national coach
with a hard-fought 1-0 win over Norway in Oslo.
Swiss coach Ottmar Hitzfeld, a former Bayern Munich boss, was overjoyed by his historic win.
"We played a sensational match. We found lots of gaps in the German defence and we were very efficient in front of goal. Germany seemed to tire quickly."
Saturday proved to be a nightmare for goalkeeper Ter Stegen who had a debut to forget with Swiss striker Eren Derdiyok, who has just left Bayer Leverkusen for fellow German Bundesliga side Hoffenheim, grabbing a hat-trick.
All three of his goals were set-up by passes from strike partner Tranquillo Barnetta.
Derdiyok hit the target twice in the space of three first-half minutes before central defender Mats Hummels pulled one back for Germany on the stroke of half-time with a header from a Mesut Ozil cross.
Derdiyok made it 3-1 on the 50-minute mark with Andre Schuerrle reducing the deficit 14 minutes later.
Stephan Lichtsteiner made it 4-2 in the 67th minute before Marco Reus hit back for the Germans for 4-3 after 72 minutes.
Admir Mehmedi made it 5-3 for the home side just four minutes later as the goals continued to flow and it could have been six for the Swiss had Gelson Fernandes' 88th-minute header not come back off the post.