Milan Jovanovic and Vladimir Stojkovic teamed up to re-ignite Serbia's World Cup campaign as much-praised Germany faltered.
Jovanovic blasted home a 38th-minute winner from close range two minutes after Germany striker Miroslav Klose had been sent off, and Wigan keeper Stojkovic saved a second-half Lukas Podolski penalty to blow Group D wide open.
Each of the three games in the group to date has seen a red card, and Klose will be suspended for Wednesday's final first round clash with Ghana in Johannesburg as Serbia take on Australia in Nelspruit.
Germany arrived in Port Elizabeth having established themselves among the favourites to win the tournament once again following a crushing 4-0 defeat of the Socceroos in their first game, but with coach Joachim Low insisting he had not been completely satisfied by their performance in Durban.
Low's mood will have darkened considerably after an opening 45 minutes at the Nelson Mandela Bay Stadium during which little went right for his team.
Podolski blasted a seventh-minute volley just wide, but in a largely uninspiring first half, the fireworks came in the last nine minutes.
Spanish referee Alberto Undiano had issued the first of six yellow cards to Klose for a foul on Branislav Ivanovic with just 12 minutes gone, and it was the Germany striker who also collected the final caution of the opening 45 minutes for a trip on Serbia skipper Dejan Stankovic.
Things were to deteriorate further for the Germans within two minutes when impressive winger Milos Krasic picked out 6ft 6in striker Nikola Zigic at the far post and he headed down for Jovanovic to control in front of goal and steer the ball past stranded Germany keeper Manuel Neuer.
Low's men belatedly responded with midfielder Sami Khedira firing against the underside of the crossbar and Thomas Muller forcing a goal-line clearance from Aleksandar Kolarov with his follow-up in injury time, but Serbia held out.
Werder Bremen midfielder Mesut Ozil, who had started the game playing behind Klose, found himself pushed further forward after the break, but it was Podolski who shot across the face of goal within a minute of the restart.
For all they were a man short, it was Germany who made the running during the opening minutes of the second half, and it took a last-ditch challenge by Nemanja Vidic to prevent Bastian Schweinsteiger from collecting Philipp Lahm's superb 54th-minute through-ball.
Stojkovic spilled Schweinsteiger's well-struck shot seconds later and was grateful to see Podolski fire wide of the far post under pressure from Ivanovic with the Germans turning the screw.
But Stojkovic came to the rescue on the hour when, after Vidic had needlessly handled in the area, he dived to his left to save Podolski's spot-kick.
Serbia might have increased their lead, but Jovanovic's 67th-minute shot came back off the post and Zigic's header clipped the bar seven minutes later with Neuer beaten.
Stojkovic had to turn away substitute Marko Marin's deflected shot with 12 minutes remaining, but there was no way back for the Germans.