Gremany were without their Bayern Munich stars, who were rested, but will still be concerned after losing 5-3 in Basel.
Switzerland, who are coached by former Bayern boss Ottmar Hitzfeld, owed much to hat-trick hero Eren Derdiyok.
The 23-year-old, who has just switched Bundesliga clubs, moving from
Bayer Leverkusen to Hoffenheim, scored Switzerland's first three goals
as they stunned Joachim Low's jaded side.
There was also disappointment for Holland another team backed to topple Spain as champions of Europe, as they crumbled to a 2-1 defeat at home to Bulgaria in Amsterdam.
Robin van Persie had given the Dutch the lead just before half-time
only for Ivelin Popov to equalise from the penalty spot just after the
interval.
Iliyan Mitsanski completed a woeful result for Bert van Marwijk's men
when he scored the winner to silence the home crowd in the last minute.
Denmark went down 3-1 to Brazil, with Porto forward Hulk capitalising on errors by Thomas Sorensen and Daniel Agger to score twice in Hamburg.
Spain did not have so many problems as they completed a routine 2-0 win over Serbia thanks to a second-half goal from debutant Adrian Lopez and a Santi Cazorla penalty.
England emerged with a 1-0 win against Norway in Oslo thanks to Ashley Young's goal.
Republic of Ireland overcame Bosnia. Shane Long's second-half header was enough to give Giovanni Trapattoni's side the win in Dublin.
Scotland were humiliated as the United States of America cruised to a 5-1 win in Saturday's friendly in Jacksonville.